return的rest标准(创建和更新)是什么?

epggiuax  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(180)

rest体系结构的标准问题相当混乱。有人说create和update操作没有模式,也有人说模式是返回创建的对象。哪个是正确的?

vddsk6oq

vddsk6oq1#

rest体系结构的标准问题相当混乱。有人说create和update操作没有模式,也有人说模式是返回创建的对象。
这是真的,令人困惑。
从技术上讲,rest不是一种架构,而是一种架构风格,也就是说一组架构约束。
万维网是rest的参考应用程序,我的意思是它是为满足rest架构约束而构建的最广为人知的应用程序。
rest没有自己的标准,它只是说如果你想要一个成功的长寿命的web应用程序,就应该有标准。
网络有标准;特别是,它有http标准,这是web如何满足rest体系结构风格的自描述性消息约束的
目前语义和内容的http标准是rfc7234;特别是,第6节描述了状态码语义如何与响应有效负载相关,第6.3.1节描述了请求成功时返回的各种有效负载。
我发现最容易理解的框架是:http告诉我们,当客户端尝试创建、更新或删除网页成功时,服务器应该如何响应,因此(因为接口是统一的),它还描述了当那些相同的消息语义应用于非网页的“资源”时,我们应该如何响应。
当您在成功的put或post之后查看响应的语义时,它可能看起来没有立即的帮助。标准的语言实际上是说,您可以返回资源的一个副本(从技术上讲,是资源表示的一个副本),也可以不返回,并且您可以使用特定的元数据(内容位置)来表示负载是某个资源的表示。当content location值与有效的请求uri匹配时,“每个人都知道”响应的有效负载是作为请求目标的资源的新表示。
总之:“你必须归还资源”是错误的。您可以返回资源,当您这样做时,应该在响应中包含适当的元数据,以便通用组件知道发生了什么。您还可以决定返回其他内容(甚至可以什么也不返回),在这种情况下,元数据表示返回的实体是资源的表示形式是不合适的。
相当多的混淆来自rest和http之外的源代码。
例如,考虑json:api; 关于创建资源的部分听起来可能很熟悉
响应还必须包含包含所创建的主资源的文档。
如果你处在一个人们认为休息是必要的环境中json:api,甚至rest是json加http,那么这就意味着rest是一个非常强大的声明。但事实并非如此,因为休息并不局限于这些事情。

oug3syen

oug3syen2#

我想说,这取决于你的用例和其他因素,比如网络流量。在大多数情况下,我至少会返回所创建资源的id。但是,如果您有一些测量值(例如来自物联网设备),则该设备不关心应用程序中的资源或其id。看跌期权的情况也差不多。更新是直接发生的吗?在应用程序中的n次更新期间,资源是否发生了变化?我猜没有真正的标准,这取决于您的用例。

相关问题