根据多个参数获取特定资源的 RESTful 方式是什么?

问题描述

我遇到的情况是服务器有一些项目由两个键标识:类型和大小。客户不知道商品 ID。

客户应该能够执行请求以获取他们想要的项目列表。例如:

“给我圆 40、圆 30 和正方形 40”。

使用 json 主体很容易,但我们必须使用 GET 请求。鉴于这个问题,这根本没有用:/ids=1,2,3.

我们应该做一个

  • 客户端应该发送 type_size 的奇怪约定?
  • 客户端应该发送 type=size1,size2 的奇怪约定
  • 针对每种类型的 GET 请求?
  • 作为 GET 的 POST 请求?
  • POST 请求生成一个 ID 以执行后续的 GET 请求?

解决方法

您将如何使用 HTML 网页执行此操作?

您可能有一个带有表单的网页,该表单将具有输入控件,以便客户可以列出他们想要的项目。填写完表格后,提交。

此时,浏览器使用输入控件收集的数据创建一个 application/x-www-form-urlencoded 文档,并且(因为表单上的方法是 GET),将该文档用作查询部分请求 uri。

GET /items?circle=30&circle=40&square=40

更一般地说,我们可以向客户端提供一个 URI template,用于描述应如何将信息编码到 URI 中。

但就 HTTP 而言:只要 URI 符合 RFC 3986 描述的生产规则,它可以是您想要的任何内容。只要客户端知道如何对信息进行编码,服务器也知道如何以同样的方式解码信息,你就可以为所欲为。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...