在RESTful html应用程序中放置表单替代视图的位置?

在RESTful html应用程序中放置表单替代视图的位置?,第1张

概述让我们假设一个Web应用程序,每个URI为GET请求提供一个很好的html视图,并允许通过POST / PUT / PATCH / WHATEVER更新底层资源. 然后,我如何公开实际允许从浏览器执行此类请求的各种表单?更广泛的:假设我有相同资源的替代视图(可能还有HTML),我在哪里放这些?可以说,这些形式可以被视为替代观点,因此对更广泛的问题的答案将是理想的. 编辑:为了澄清,我的问题不是关于 让我们假设一个Web应用程序,每个URI为GET请求提供一个很好的HTML视图,并允许通过POST / PUT / PATCH / WHATEVER更新底层资源.

然后,我如何公开实际允许从浏览器执行此类请求的各种表单?更广泛的:假设我有相同资源的替代视图(可能还有HTML),我在哪里放这些?可以说,这些形式可以被视为替代观点,因此对更广泛的问题的答案将是理想的.

编辑:为了澄清,我的问题不是关于提供JSON或诸如此类的纯数据API,而是关于HTML应用程序,例如Stackoverflow.例如,您可以获得/questions下的问题集合以及/questions/24696982中的特定问题.要获得添加新问题的表单,您必须使用/questions/ask,我不确定是否正常.那形成POST到/questions/ask/submit,这似乎是完全错误的.向该URL发出GET请求会产生404(如果有的话,它应该是405).表格应该是POST / to.我仍然想知道在RESTful系统中是否至少认为表单的URI是可接受的.

解决方法 你有一个网站,构建一个真正的RESTFull API的一种方法是拆分前端和API – 这在我看来是最好的方式(有些人可能不同意) – 也许其他一些人不这么认为但是让我们说前端团队获得了www.domain,您的API团队得到了API.domain.

GET API.domain/questions - RetrIEves a List of tickets   GET API.domain/questions/12 - RetrIEves a specific ticket   POST API.domain/questions - Creates a new ticket  PUT API.domain/questions/12 - Updates ticket #12  DELETE API.domain/questions/12 - Deletes ticket #12  PATCH API.domain/questions/12 - Partially updates ticket #12 #I only want to display that this also exists - i don't really use it...

真棒编辑:正如您所看到的,stackoverflow也使用此方法:API.stackexchange.com

因此,您可以看到您可以拥有这些结构 – 但您也可以在www.domain / questions / ask上找到一个表单,此表单将通过POST将请求发送到API.domain / questions.我想参考:https://thenewcircle.com/s/post/1221/designing_a_beautiful_rest_json_api_video这是一个你应该听过的非常好的播客.

编辑:(另一种观点)

另一个想法是,如果您的客户端向您发送正确的Accept-header,您可以简单地选择应该返回哪些内容(Json,XML,HTML).

例1:

URL           REQUEST       ACCEPT header               RESPONSE                      -----------------------------------------------------------------------------------------domain/questions      GET        application/Json   all questions as Jsondomain/questions      GET        text/HTML          the page as HTML with all questionsdomain/questions/ask  GET        text/HTML          Your HTML for to add a new questiondomain/questions      POST       application/Json   Add a new new questions (this would be called from ./ask to add the new questionsdomain/questions/ask  GET        application/Json   404 Status-Code because on questions/ask you don't have implemented any resource

实施例-2:

URL              REQUEST     ACCEPT header               RESPONSE                      -----------------------------------------------------------------------------------------domain/questions/12       GET      application/Json   Shows the questions with the ID 12 as JsONdomain/questions/12       GET      text/HTML          Shows the HTML representation of your pagedomain/questions/12/edit  GET      text/HTML          Your HTML for to edit a the questiondomain/questions/12       PUT      application/Json   Updates the questions with the ID 12 // just to add the PATCH thing.. i don't really use it but if you don't update the whole object you Could/should use PATCH instead of PUT :pdomain/questions/12/edit  GET      application/Json   404 Status-Code because on questions/ask you don't have implemented any resource

昨天我告诉你关于第一个想法(这是 – 我认为使用API作为一个团队(一个用于前端和一个开发API的团队 – 一个更好的方法)但是@jackweirdy评论(感谢你 – 然后搜索很多,正在看世界各地开发商的其他播客,以及他们将如何做到这一点)下面真的由你决定 – 这是你的API,最后你/你的团队将决定一种方式.希望这有助于你或寻找如何在REST背景上构建API的其他方法.

EDIT-Section中的示例(如果我做对了)不像stackoverflow那样

总结

以上是内存溢出为你收集整理的在RESTful html应用程序中放置表单/替代视图的位置?全部内容,希望文章能够帮你解决在RESTful html应用程序中放置表单/替代视图的位置?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存