REST:GET 电话

REST: GET calls

我正在阅读一本关于 REST 的书。它建议对于 GET 请求,方法名称应该在 HTTP 方法 header 中,检索数据所需的任何参数都应该在 URI 中。 示例:www.flickr.com/search=企鹅

现在,在许多情况下,需要一些参数来检索数据。例如,应用程序名称、用户名称、用户地址等。如果需要多个参数来检索数据,最好将此信息包含在 URI 中,还是我们可以传递一个 JSON object 并使用 HTTP POST?

或者这会使服务不 RESTful

不,您不能在 GET 请求中传递 JSON,因为 GET 请求没有正文。您可以使用 & 在 URI 中传递多个查询参数,例如:

http://myserver:port/search=penguins&type=movie&name=happy

您可以使用 Chrome 网上应用店中的 PostmanDHC 来测试您的请求和响应。

与所有事物一样,需要权衡取舍。如果您使用带有查询参数的 GET 进行过滤并且您的数据是可缓存的,那么缓存将能够存储这些请求的结果并在以后保存工作。但是,您在查询字符串的大小上受到限制。浏览器的上限允许为 2k 个字符,但大多数浏览器至少支持 8k。

如果您使用 POST 和过滤器主体进行过滤,您可以将该过滤器保存为资源并在以后引用它,包括在以后的 GET 调用中。您也没有查询大小的上限。