使用REST执行操作是否合适,除了简单的创建(POST),读取(GET),更新(PUT)和删除(DELETE)?我对整个RESTful神学都很陌生,所以请耐心等待,但我应该如何完成以下任务:
我最初的想法是1.启用某种身份验证,2。在服务器端响应GET调用,保留空间并返回结果,以及3.通过DELETE调用立即提供对象的“保留” 。这仍然是RESTful吗?
答案 0 :(得分:3)
是的,可以通过休息来执行操作。重要的是,这些行动应以您交换的陈述为指导。
如果您考虑网络的工作方式(通过浏览器),您可以随时执行此操作:您将获得一个HTML表单,您可以选择一些可以执行的操作。然后,您提交表单(通常通过POST
)并执行操作。
通过编程客户端(这是浏览器中非AJAX请求不支持的东西)能够使用DELETE
是件好事,但RESTful系统的整体方法应该与你找到了网站(即焦点应该在表示上:相当于你系统中的网页)。
GET
不应有副作用,因此请勿使用GET
进行预订,请改用POST
之类的内容。
答案 1 :(得分:2)
从你的描述......
2。在服务器端对GET调用的响应中,保留空格并返回结果
GET应该是幂等的。仅仅因为这个原因,你的服务不太可能是宁静的,因为第一次GET之后的系统状态是不同的。
您确实需要考虑预订是资源,并且应该使用POST创建预留容器,该预留容器将在HTTP响应的Location标头中返回新资源的URI。 Get可以使用此UrI返回资源并使用PUT进行更新
Post应该用于扩展现有资源而Put用于替换资源的状态。在您的情况下,请考虑Post更新预留列表并返回新的URI资源(不仅仅是我)。 Put可用于更改与UR标识的资源相关联的状态
答案 2 :(得分:1)
你走在正确的轨道上,但你对物体的保留应该是PUT;你正在对物体进行预约,即改变基础物体。
PUT是正确的动词,因为你知道你正在修改什么资源,它应该是多个请求的幂等。