首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新项目时要使用的RESTful路由涉及创建并向其添加新项?

更新项目时要使用的RESTful路由涉及创建并向其添加新项?
EN

Stack Overflow用户
提问于 2019-09-25 12:42:24
回答 2查看 56关注 0票数 1

新的编码,并有一个关于路线的结构而不是实际编码的问题。下面我将使用一个图书馆和图书网络应用程序来澄清我的问题。

我想创建一个新的库: POST库路由。

我想更新库名: PUT库/ library route路由。

我想写一本新书。邮编簿

我想更新一下书名。把书/书放起来

在我的单页应用程序中,我正在图书馆中查看一张图书列表。有一种形式可以给图书馆增加一本新书。

表单应该按照RESTful路由到哪个路由,还是不重要?

  1. 从POST到新的图书路径,然后更新库:POST/books/library and

  1. 表单放入更新库路由,并在该路径中创建一本新书: PUT / library /libraryId/newbookname

编辑:基于以下评论的一些澄清。因此,在我的场景中,用户可以在库之外创建新书,但它们不能分配给库。图书管理员管理图书馆,这样就可以创建新的图书,并自动添加到他们的图书馆中。

EN

回答 2

Stack Overflow用户

发布于 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并不总是用于创建和放置更新。

票数 1
EN

Stack Overflow用户

发布于 2019-09-25 14:48:29

目标-uri的选择主要取决于您希望自动失效的当前缓存资源。见RFC 7234

例如,考虑这个协议:您的GET /libraries/123,并在表示中观察到缺少一本书。然后你得到表格,把书添加到图书馆,然后提交给图书馆。这份意见书应该去哪里?

那么,当前缓存的/libraries/123表示形式没有那本书,所以如果我们希望用户能够验证事情发生了变化,那么他们将需要一个新的/libraries/123副本来查看,所以我们应该通过向/libraries/123提交post请求来使当前缓存的副本失效。

注意,这是我们在尝试更新库名时使用的相同的目标-uri。那是故意的。

一个很好的启发是“你将如何在网络上做到这一点?”当我们使用HTML导航域应用程序协议时,POST是唯一可用的不安全方法。因此,添加一本新书和更改名称都是POST请求--换句话说,POST处理程序可能需要查看请求的正文,以确定要做什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58098688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档