REST API体系结构的目标之一是将客户端和服务器分离。
我在计划REST API时遇到的一个问题是:“客户端如何知道POST方法的有效负载是什么?”
以某种方式,API需要向UI传达给定资源的POST方法有效的有效载荷。否则,我们将再次依赖于使用API所必需的带外知识,然后再次紧密耦合。
因此,我想到资源上GET的API响应将提供规范,以为该资源上的POST方法构造有效的有效负载。这将包括字段名称,数据类型,最大长度等。
处理此问题的正确方法是什么?大多数人只是依靠带外信息吗?人们在现实世界中正在为这个问题做什么?
编辑
下面的序列图中说明了我想解决该问题的方法:
“ >>
客户端和api服务是分开的。客户知道:
发生的事情:
无需任何魔法/元资源,无需使用元数据方法。一切都由API提供。
想法?
REST API体系结构的目标之一是将客户端和服务器分离。我在计划REST API时遇到的问题之一是:“客户端如何知道什么是有效的...
大多数人都依赖带外信息。不过,这通常可以,因为大多数客户端不是动态构建的,而是静态构建的。它们依赖于API的已知部分,而不是由HATEOAS驱动。
您是正确的,客户应了解响应中链接的语义,并从中选择合适的链接以实现其目标。客户端与API提供的与此相关的语义相关,而不与API本身相关。因此,例如,客户端不应该从URI结构中检索信息,因为它与实际的API紧密耦合。
我想您是在询问Rest API 元数据
使用RFC 6861,您可以使用create-form
和edit-form
链接关系链接到表单,而不是由客户端自行构造表单。相应的表单应具有构造POST请求的必要模式。