新的编码,并有一个关于路线的结构而不是实际编码的问题。下面我将使用一个图书馆和图书网络应用程序来澄清我的问题。
我想创建一个新的库: POST库路由。
我想更新库名: PUT库/ library route路由。
我想写一本新书。邮编簿
我想更新一下书名。把书/书放起来
在我的单页应用程序中,我正在图书馆中查看一张图书列表。有一种形式可以给图书馆增加一本新书。
表单应该按照RESTful路由到哪个路由,还是不重要?
或
编辑:基于以下评论的一些澄清。因此,在我的场景中,用户可以在库之外创建新书,但它们不能分配给库。图书管理员管理图书馆,这样就可以创建新的图书,并自动添加到他们的图书馆中。
发布于 2019-09-25 13:09:36
在我看来,如果这些书与图书馆相关,那么您将有一条创建图书的路线: POST /libraries/libraryId/books,并更新一本书: PUT /libraries/libraryId/books/bookId。
还要确保尊重关于HTTP方法的这些基本规则:https://nordicapis.com/understanding-idempotency-and-safety-in-api-design/
POST并不总是用于创建和放置更新。
发布于 2019-09-25 14:48:29
目标-uri的选择主要取决于您希望自动失效的当前缓存资源。见RFC 7234。
例如,考虑这个协议:您的GET /libraries/123,并在表示中观察到缺少一本书。然后你得到表格,把书添加到图书馆,然后提交给图书馆。这份意见书应该去哪里?
那么,当前缓存的/libraries/123表示形式没有那本书,所以如果我们希望用户能够验证事情发生了变化,那么他们将需要一个新的/libraries/123副本来查看,所以我们应该通过向/libraries/123提交post请求来使当前缓存的副本失效。
注意,这是我们在尝试更新库名时使用的相同的目标-uri。那是故意的。
一个很好的启发是“你将如何在网络上做到这一点?”当我们使用HTML导航域应用程序协议时,POST是唯一可用的不安全方法。因此,添加一本新书和更改名称都是POST请求--换句话说,POST处理程序可能需要查看请求的正文,以确定要做什么。
https://stackoverflow.com/questions/58098688
复制相似问题