我应该使用GET还是POST REST API方法?
我想检索关于一堆资源的数据。假设是一个book id数组,响应是book对象的JSON数组。我想将请求负载作为JSON发送到服务器 我应该使用我应该使用GET还是POST REST API方法?,rest,Rest,我想检索关于一堆资源的数据。假设是一个book id数组,响应是book对象的JSON数组。我想将请求负载作为JSON发送到服务器 我应该使用GET和POST方法吗 注: 我不想对每个图书ID发出多个GET请求 POST似乎令人困惑,因为它应该仅在请求创建资源或修改服务器状态时使用。如果我理解正确,您希望在一次拉取中获得列表中所有项目的列表。这可以使用GET实现,因为REST返回JSON,默认情况下最多可以有100个条目,如果需要,可以通过指定$top来获取更多条目 至于写回或服务器,帖子将是你
GET
和POST
方法吗
注:
我不想对每个图书ID发出多个GET
请求
POST似乎令人困惑,因为它应该仅在请求创建资源或修改服务器状态时使用。如果我理解正确,您希望在一次拉取中获得列表中所有项目的列表。这可以使用GET实现,因为REST返回JSON,默认情况下最多可以有100个条目,如果需要,可以通过指定$top来获取更多条目
至于写回或服务器,帖子将是你所寻找的,据我所知,这将需要一对一 您将使用GET请求,并将请求数据(图书id数组)放入ajax(或任何您将要使用的)请求的数据部分。看 我想检索关于一堆资源的数据。假设是一个book id数组,响应是book对象的JSON数组 如果您正在考虑将book id数组作为HTTP请求的消息体传递,那么
GET
是一个简单的方法
GET请求消息中的有效负载没有定义的语义;在GET请求上发送有效负载正文可能会导致某些现有实现拒绝该请求
你应该改用POST
POST似乎令人困惑,因为它应该仅在请求创建资源或修改服务器状态时使用
那不太对。可用于任何用途--请参阅或。但是,通过使用POST,您放弃的是中间组件参与对话的能力
例如,对于有效只读的情况,您希望使用一种方法,因为它允许预缓存优化,并在不可靠的网络上自动重试丢失的响应。POST没有额外的语义约束,所以您会失败
HTTP真正想要的是使用URIGET
;这可以通过两种相对简单的方法之一实现:
1) 将ID发布到服务器,以创建新资源(意味着服务器为自己保留ID列表的副本),并在exchange中接收新的资源标识符。然后,在您想知道结果的当前表示形式的任何时候,都可以使用这个新标识符
2) 将您需要的信息编码到URI本身中。最常见的是,这是使用URI的查询部分完成的,尽管严格来说这不是必需的。这里的缺点是,如果ID数组的URI编码表示非常长,那么您可能会遇到一些强制执行任意URI限制的实现的问题
并非总是有很好的答案:
REST接口的设计目的是高效地进行大粒度超媒体数据传输,针对Web的常见情况进行优化,但导致的接口对于其他形式的体系结构交互不是最佳的
严格来说,您应该使用GET并传入要检索的图书id集合。但是,如果该图书列表可能超出URL查询字符串中所能容纳的范围,那么您可能不得不使用POST。我想知道最好用什么<根据REST API定义,代码>获取或
发布
。@Siva最后使用的方法是什么?我的情况和你问这个问题时的情况相似。