0

我正在写一个api。到目前为止,我一直在使用一条路线:

http://api.com/resource

然后我将我想要对 json 字段中的资源执行的操作传入并从那里开始。从程序员和用户的角度来看,这是一个理想的还是可取的情况?

或者,

会像:

http://api.com/resource/action

更有用,更宁静,正确(任你挑选)。还是根本不重要?它按原样工作,但我的目标是公共消费,我想在它变得更难改变之前解决我不知道的任何问题。

编辑:

要添加更多详细信息,我不关心的操作是 GET、POST 等。我有一条路线:

http://api.com/thing

这是一个 POST 路由,它创建了一个东西。此时事物并未存储在数据库或任何地方,因此创建的事物会立即与响应一起返回。用户可以指定返回的东西涂上颜色:红色、黄色或绿色。从用户的角度来看,将颜色要求指定为上面发布数据的一部分或具有如下路线是否更有用:

 http://api.com/thing/red

发帖返回一个红色的东西。

4

1 回答 1

1

基本上,action不需要指定(在 URL 或发送的数据中)作为 HTTP 动词,在 REST 方法中,用于描述对资源执行的操作。因此,您的两个解决方案并不是真正“符合 REST 标准”。您首先应该做的是将您的路由http://api.com/resources与一些 HTTP 动词结合起来,以便:

像往常一样,遵循约定更好。对于喜欢约定和最佳实践的程序员来说,您的两种解决方案并不理想。但是,您的第二个解决方案是可读且明确的。这意味着,如果您真的想在两种解决方案之间进行选择,第二种似乎更好。但是,如果您想更新您的 API 以遵循更多 REST 约定,您应该将您的 API 视为resource真正的资源并使用HTTP 动词

我向您推荐以下两个有关 REST API 的演示文稿:

您可能对这个其他问题和我给出的答案感兴趣:REST 的资源和操作 URI 约定

编辑:根据您的新问题,将所有数据作为发布数据发送,甚至是您的颜色。会更加一致。为什么它应该有所不同呢?只有在描述不同的资源时才应该更改 URI。如果颜色只是 a 的属性,thing那么您不描述两个资源,您应该将颜色与所有其他发布数据一起发送。

于 2012-08-24T08:18:40.277 回答