如何为非CRUD功能实现有效的宁静api
问题描述:
我想实施有效的Restful API。
我有一个名为“乔布斯”的资源,也是我实现的CRUD [GET,POST,PUT ...]例如:GET: /api/jobs/1
或POST: /api/jobs/ with a body {...}
现在我想添加一个方法来启动一个工号1234
我该如何执行此操作? URI应该是什么?什么应该是HTTP动词?
有人可以给我一个例子如何为非CRUD功能实现有效的宁静api
答
您可以创建一个新的资源
POST /started-jobs?jobId=1234
您可以编辑工作在线状态:
PUT /jobs/1234
{
"state": "started",
..
}
您可以使用微PUT
PUT /jobs/1234/state
started
这就是我的头顶。当然还有其他的选择。哪一个最好?这需要更多关于你想要完成的事情的信息。
嗨,Eric,你是什么意思的微PUT?国家资源是什么?开始的是什么?你能解释一下吗?另外,在第二个选项PUT/jobs/1234中,我已经使用这个PUT来更新对象作为CRUD的一部分。所以再次使用它是不可能的。最后一件事,我可以使用POST并使用/ jobs/StartJob {jobId:1234} – user4045308
@ user4045308我的意思是创建一个代表单个属性'state'的新端点。您可以将新状态作为字符串“PUT”到该端点。 –