【问题标题】:How to implement valid restful api for non CRUD feature如何为非 CRUD 功能实现有效的 restful api
【发布时间】:2017-09-23 18:17:14
【问题描述】:

我想实现一个有效的Restful API。
我有一个名为“Jobs”的资源,并且我实现了 CRUD [GET, POST, PUT...] 例如:GET: /api/jobs/1 或 POST: /api/jobs/ with a body {...}
现在我想添加一个方法来启动 1234 号工作。
我该如何实施? URI应该是什么? HTTP 动词应该是什么?
谁能给我一个例子

【问题讨论】:

    标签: restful-url


    【解决方案1】:

    您可以创建新资源

    POST /started-jobs?jobId=1234
    

    您可以在线编辑作业的状态:

    PUT /jobs/1234
    {
        "state": "started",
        ..
    }
    

    您可以使用微型 PUT

    PUT /jobs/1234/state
    started
    

    这只是我的想法。肯定还有其他选择。哪个最好?这需要有关您要完成的任务的更多信息。

    【讨论】:

    • 嗨,Eric,你所说的 micro-PUT 是什么意思?是状态资源?什么是启动?你能解释一下吗?此外,在您的第二个选项 PUT /jobs/1234 中,我已经使用此 PUT 作为 CRUD 的一部分来更新对象。所以不可能再次使用它。最后一件事,我可以使用 POST 并使用 /jobs/StartJob { jobId: 1234}
    • @user4045308 我的意思是创建一个代表单个属性state 的新端点。您可以PUT 新状态作为该端点的字符串。
    猜你喜欢
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多