我有一个场景,我必须
我使用的网址是 -
然后可以将搜索过滤为
我所担心的是管理不是资源 - 它实际上是一种行动。管理页面包含与汽车管理相关的其他功能的链接[添加汽车/删除汽车/列表汽车/修改汽车等]
有其他人遇到过这个问题吗?你能告诉我你的解决方案吗?
答案 0 :(得分:1)
拥有一个显示汽车管理选项的页面的管理资源没有任何问题。仅仅因为“汽车”是数据库中唯一的东西并不意味着它是您可以呈现给用户的唯一资源。你可以拥有一个资源,它只是一种选择颜色的形式(对汽车资源进行POST或PUT)。您可以拥有一个资源,它只是一个表单,用于填写您希望汽车交付的地址。无论您是否想要真皮座椅,您都可以拥有一个只需一个复选框的资源。即使所有资源都是带有表单或链接回汽车资源的页面,您也可以拥有任意数量的资源。
请勿在您的网址中添加任何动词。您仍应使用HTTP谓词来使用状态转移来更改资源的状态。没有像
这样的链接GET / cars / 123 / deleteCar
在管理页面上。相反,管理页面上可能存在一个链接(可能使用Javascript,因为浏览器对HTTP谓词的本机支持较差)执行HTTP请求
DELETE /cars/123
当用户点击链接时。像jQuery这样的东西可以帮助你。只要管理页面使用HTTP谓词来更改您遵循REST的资源的状态,因为HTTP是REST约束协议。 REST没有说没有行动,它说行动应该限制在国家转移。
答案 1 :(得分:0)
RESTfull方法是使用不同HTTP动词的相同URL:
GET /cars
用于搜索/列表。 POST /cars
表示插入。PUT /cars?id=123
(或/cars/123
)进行更新。DELETE /cars?id=123
表示删除。