如何根据HATEOAS约束使用PUT建模资源?

问题描述 投票:0回答:1

假设我正在开发一个带有容器项的RESTful API:

/items

和个别项目将通过URI识别,如:

/items/{id}

描述在HATEOAS约束下PUT请求可以创建新项目的最佳方式是什么,即客户端指定{id}?

PUT /items/1234
rest put hateoas
1个回答
1
投票

描述在HATEOAS约束下PUT请求可以创建新项目的最佳方式是什么,即客户端指定{id}?

你会如何在网站上做到这一点?

你可能有一些提供表格的资源;形式将包括id,可能还有其他有趣的东西。客户端将填写表单(使用语义提示来解释每个字段中属于哪些信息)。提交表单时,HTML处理规则会将表单值编码为application/x-www-url-formencoded表示,该表示将成为target-url的查询部分。服务器将检查有效负载,计算适当的目标URI,并向客户端发送重定向响应。

然后,客户端可以GET / PUT / POST等到服务器推荐的资源。

如果你稍微眯一下,你可能会发现表格的作用非常类似于URI Template

因此基本草图非常简单:客户端和服务器必须就描述模板(及其语义含义)的媒体类型以及相应的处理规则达成一致。

这是坏消息:这很难。在全球网络中,HTML正在为我们做大量工作。如果您的API也使用其资源的html表示,那么您可以捎带已经存在的表单。但HTML有点不再流行。

在API空间中,JSON有很多心灵共享,并且有一些媒体类型将它作为起点。 Sookocheff's 2014 survey现在五岁了,但会让你知道那里有什么。

© www.soinside.com 2019 - 2024. All rights reserved.