用于打印资源的 RESTful url

标签 rest

我有一个 Stock 资源,它显然是一个库存项目,可以通过...访问它

[Get] /stock/{stockId}

我有一个打印机资源,它是某处的网络打印机,可以通过...访问它

[Get] /printer/{printerId}

我有一个指向服务器上模板文件的模板

[Get] template/{templateId}

现在我想做的是能够向打印机发送请求,以使用特定模板打印特定库存项目。

我的第一个想法是

/printer/{printerId}/printstock?stockId=1&templateId=1

所以我的问题是 -

当它完成打印时,它会更新库存项目以说明它已被打印这是否意味着它应该是一个 POST(或者它应该是一个 PUT?)

URL 中的“printstock”等操作是否是解决此问题的正确方法?

Stock 应该是主 Url 的一部分而不是查询字符串吗?

最佳答案

将打印作业建模为单独的资源。您可以通过POSTing 到代表所有打印作业的集合资源来创建新的打印作业。

要求:

POST /printjobs
Content-Type: application/json

{
  "printer": 1234,
  "stock": 1,
  "template": 1
}

响应:

201 Created
Location: /printjobs/42

然后您的客户端可以GET打印作业的状态。

GET /printjobs/42

200 OK
Content-Type: application/json

{
  "id", 42,
  "state": "PRINTING",
  "printer": 1234,
  "stock": 1,
  "template": 1
}

作业完成后,状态可能会更改为PRINTED,库存状态可能会以类似的方式更改。

关于用于打印资源的 RESTful url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555785/

相关文章:

ruby-on-rails - 生成具有所有 RESTful 功能的 Controller

api - 是否有任何为 REST API 创建引用文档而设计的 CMS 引擎?

java - 在 Ratpack Handler 中转换 Springboot Controller 类

python - Django REST Framework - 类 UserSerializer 缺少 "Meta.model"属性

javascript - REST API分页如何保证数据一致性

rest - Http请求(REST API)angular2时的错误处理机制

python - 如何在用户资源中插入 user_permissions 字段?

java - Jersey 客户端 - 如何通过 POST 请求以表单形式发送列表

ios - 基于回合的游戏服务器的 websockets 和长轮询之间的区别

rest - 如何使用用户名和密码(无应用程序 ID)向 Azure REST API 进行身份验证