REST创建没有持续
现在我有一个REST服务,它通过POST创建一个报告:
POST http://myhost/reports
然而,报告中没有坚持,而不能在以后上通过GET检索:
GET http://myhost/reports/{id}
相反,我立即在POST的响应中返回报告。 我在这里违反了任何REST原则吗?例如,POST创建的任何东西都应该可以通过GET访问,或者该设置是否正常?
不,你没有违反REST。 只要你的界面是统一的,你可以决定你的API的URL执行什么操作。
作为文档的一部分,您只需说明哪些方法对某些资源有效,哪些不适用。 我非常喜欢使用Twitter API作为“做什么”的一个很好的例子
示例:Twitter REST API
POST statuses/update
不会创建可供访问的对象
GET statuses/update/3
POST方法不是CRUD中创建的同义词。 POST方法用于任何不标准化的操作,只要你记录它的作用,不管你做什么,你都没有违反REST。
没有这样的REST原则说“POST创建的任何东西总是可以通过GET访问”。 由于将REST与CRUD相混淆,这是一个常见的误解。 阅读这个答案对此做一些澄清。
在非正式语言中,POST对服务器说的是:“接收这些数据并将其应用于由给定URI标识的资源,遵循您为资源媒体类型记录的规则。”
POST方法执行的操作可能不会导致可以通过URI标识的资源。 在这种情况下,200(OK)或204(无内容)是适当的响应状态,具体取决于响应是否包含描述结果的实体。
所以根据HTTP标准,这是可以的。
链接地址: http://www.djcxy.com/p/71265.html上一篇: REST creation without persisting
下一篇: Best practice for URI pattern for REST api and UI web pages