2

创建 RESTful API 时,最好让客户端发送对象名称或仅发送属性。例如POST /people/的正文:

选项 1: {人:姓名:'约翰'}

选项 2: {name: 'John'}

我通常在大多数 API 中看到选项 2,但我遇到了一个棘手的问题。我正在使用 Rails,所以如果我想要一个处理 html 和 json 请求的操作,我不需要使用选项 1(因为 Rails 表单发送以对象类型开头的参数)?

一种选择与另一种选择有什么优缺点吗?

4

1 回答 1

2

大多数情况下,发送{person: {name: 'John'}}是不必要的,因为当您在 POST 或 GET 时,您通常会根据 URL 知道期望或发送的响应类型(在这种情况下为“人”)。

但是,选项 1 有一些用例。使用选项 2,您将依靠您正在获取/发布的 URL 为您提供输入信息 - 它没有在 JSON 中明确声明。这可能很好,就像你 GET from 一样/service/person/{id},'person' 标签{person: {name: 'John'}}是多余的。但是,如果您有一个更像 RPC 的服务,例如您 POST 来验证您的有效负载的服务:/service/validate或类似的东西,您可能需要这些额外的信息,以便服务可以确定类型。

于 2013-01-18T04:12:21.690 回答