如何在REST API中定义编辑页面?

丹吉格

在我设计的Play应用中,这些是我的一些路线

POST    /visits                     controllers.Visit.create
GET     /visits                     controllers.Visit.visits
GET     /visits/:id                 controllers.Visit.visit(id: Long)
PUT     /visits/:id                 controllers.Visit.update(id: Long)
DELETE  /visits/:id                 controllers.Visit.delete(id: Long)

我也支持浏览器界面。我遵循在这里看到的指导:Play上的RESTful!构架

我可以轻松地提供一个HTML模板来显示有关一次特定访问或访问列表的详细信息。但是,“编辑页面”如何清晰地落入其中,而该页面必须预先填充特定访问的信息呢?我可以轻松地执行以下操作:GET /visits/:id/edit controllers.Visit.edit(id: Long)它将返回一个包含访问信息的预/visits/:id填充页面,或者我可以拥有一个静态HTML页面,该页面使用AJAX调用来调用来填充字段,这可以避免破坏资源驱动的API与浏览器页面相关的路由。还是有更好的选择?什么是最佳做法,为什么?

佩德罗·韦内克

在REST中,仅仅为了执行标准化操作而创建其他资源就没有意义。每个知道HTTP协议的人都知道您的访问对象应该可以通过PATCH请求与您要应用的差异进行编辑,或者通过PUT请求将整个资源替换为新资源,然后进行编辑。为什么要使用POST创建自定义和非标准的编辑操作,而您将不得不对其进行记录并向所有人解释其工作原理?

从这种意义上讲,我的最佳选择是拥有一个驱动您的API的静态HTML页面,使用/ visits /:id上的GET填充字段,并使用编辑后的内容将/ visits /:id替换为提交时放置。

但是,请记住,只要尊重客户端发送的Accept标头,在API中使用特定于浏览器页面的路由就没有问题。在我的API上,当使用Accept:text / html标头发出请求时,有时会有一些路由返回人类友好的资源表示形式,因此这是拥有内置管理客户端的简单方法,并且可以轻松地使用API​​进行探索。浏览器。在REST中,API和WEB页面之间的唯一区别是,第一个返回机器友好格式的表示形式,第二个返回您希望浏览器在人类友好文档中呈现的表示形式。他们两个都应该具有链接和/或表单,以及有关如何编辑资源的说明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WordPress中编辑单个页面

来自分类Dev

如何在 Drupal 中编辑页面内容

来自分类Dev

如何在Meteor中创建Rest API

来自分类Dev

如何在Rest API中传递令牌?

来自分类Dev

如何在Meteor中创建Rest API

来自分类Dev

如何在Docker中升级Rest API?

来自分类Dev

如何在Rest API中实现错误?

来自分类Dev

Azure DevOps 如何通过 REST API 编辑 Wiki 页面

来自分类Dev

如何在管理单个产品编辑页面中获取产品类别自定义元字段的值?

来自分类Dev

如何在管理单个产品编辑页面中获取产品类别自定义元字段的值?

来自分类Dev

如何在 Orbeon 中使用 REST API 创建表单定义?

来自分类Dev

如何在REST API中使用会话

来自分类Dev

如何在FireMonkey中使用REST API?

来自分类Dev

如何在FireMonkey中使用REST API?

来自分类Dev

如何在REST中处理自定义操作?

来自分类Dev

如何在Groovy中获得REST响应?

来自分类Dev

如何在Rest中公开服务?

来自分类Dev

如何在$ .each中破坏rest脚本

来自分类Dev

如何在 webService Rest 中获取 arrayJSON?

来自分类Dev

如何在Xquery的自定义重写器代码中包含Marklogic rest-api?

来自分类Dev

如何在 REST API 中显示自定义错误响应

来自分类Dev

如何在Django REST API中查看多个API?

来自分类Dev

如何在数据表中编辑页面长度

来自分类Dev

如何在数据表中编辑页面长度

来自分类Dev

如何在编辑页面中显示选定的值

来自分类Dev

如何在REST API中拥有订阅者?

来自分类Dev

如何在REST API的Get中传递嵌套参数

来自分类Dev

如何在Django Rest Framework API中隐藏网址?

来自分类Dev

如何在Robot框架中制作POST(ReST)API

Related 相关文章

热门标签

归档