gpt4 book ai didi

entity-framework - 获取 RESTful 请求看到的返回计数

转载 作者:行者123 更新时间:2023-12-03 14:05:29 25 4
gpt4 key购买 nike

所以,我想知道我将从 RESTful uri GET 请求中得到多少结果。在这一点上,我不知道有什么方法可以做到这一点。有没有办法做到这一点?由于 REST 只是抛出属性,我不知道它是否能够计算其结果,但它可以跳过结果并获取结果的子集。

有人有什么建议吗?

哦,我的设置是填充可查询通用列表的 LINQ to SQL。数据服务使该列表可用。我试过计算列表,但我总是得到数据库的最大行数,这不是我想要的。

最佳答案

其他人可能会反对这个概念,但是,这对我来说似乎是合理的:

HEAD /your/api HTTP/1.1

HTTP/1.1 200 OK
Date: Fri, 23 Oct 2009 00:58:17 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 89
X-Result-Count: 100000000

进而:
GET /your/api HTTP/1.1

HTTP/1.1 200 OK
Date: Fri, 23 Oct 2009 00:58:17 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 89
X-Result-Count: 100000000

<?xml version="1.0" encoding="UTF-8"?>
<results>
100000000 results go here.
</results>

注:此处使用 HEAD 请求来获取计数,而无需拉取完整的数据集。 HEAD 请求仅检索 HTTP header ,而不是响应的正文。

这将是我能想到的最 RESTful 方式,表明在通过网络发送之前您将获得多少结果。主要技巧只是想出最好的标题名称。 X-Result-Count不错,但是如果您可以找到现有技术并重用他们的标题名称选择,那就更好了(只要他们没有将其命名为非常愚蠢的东西)。就是说,我不希望你有太多的运气,所以你应该坚持使用 X-Result-Count。 .

另外,我认为您可能误解了“REST”的实际含义。没有理由不能按范围进行表示。例如:
GET /your/api?page=1&perpage=10 HTTP/1.1

HTTP/1.1 200 OK
Date: Fri, 23 Oct 2009 00:58:17 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 101
X-Result-Count: 10

<?xml version="1.0" encoding="UTF-8"?>
<results>
First 10 results of 100000000 go here.
</results>

但是,要成为 RESTful,您需要能够告诉客户端 /your/api?range=0-9 标识的表示。或 /your/api?page=1&perpage=10不使用带外信息。例如,如果您的 /your/api页面会返回太多结果,请临时重定向到 /your/api?page=1&perpage=10 , 并包含指向 /your/api?page=2&perpage=10 的超链接.请注意,此上下文中的超链接可能很简单,例如:
<?xml version="1.0" encoding="UTF-8"?>
<results>
<result>
This is a result.
</result>
<result>
This is also a result.
</result>
<link rel="next" href="/your/api?page=3&perpage=2" />
<link rel="prev" href="/your/api?page=1&perpage=2" />
</results>

现在,导航 API 调用结果的信息是带内的,实际上是 RESTful。

从本质上讲,REST 是普通的旧 HTTP,缓存做得正确,并且通常是明智的 URI 投入使用以进行良好的衡量。它也是“作为应用程序状态引擎的超文本”(即资源应该链接到其他资源)。它不是一种协议(protocol),而是一种架构风格。任何告诉你不同的人最好叫罗伊菲尔丁。
  • http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post
  • http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
  • http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven#comment-718

  • 附录:

    如果要指示总计数与页数,可以像这样定义标题:
    X-Result-Count: 0-9/100000000

    或根据需要进行调整。

    关于entity-framework - 获取 RESTful 请求看到的返回计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610862/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com