REST如何在放入资源时处理查询参数?

Pet*_*ann 4 html rest

我有一个REST数据服务,我希望允许用户使用不同的格式(如json,xml,csv)使用HTTP PUT创建新项目.我不确定如何在url中最好地处理格式规范:

PUT /ressource/ID/json
PUT /ressource/ID/xml
Run Code Online (Sandbox Code Playgroud)

要么

PUT /ressource/ID?format=json
PUT /ressource/ID?format=xml
Run Code Online (Sandbox Code Playgroud)

那么指定格式指标的最佳方法是什么?

如果我使用查询参数指定格式并想要PUT如何使用curl执行此操作?

curl -T test/data.json -d "format=json"  http://localhost:5000/resource/33
Run Code Online (Sandbox Code Playgroud)

不起作用.

curl -T test/data.json http://localhost:5000/update?format=json
Run Code Online (Sandbox Code Playgroud)

工作,但我宁愿让curl构建查询参数,而不是自己添加它们.

Pet*_*ton 15

RESTful Web服务的一般原则是在适用时使用HTTP内置的功能.在这种情况下,您可以通过将Content-Type标头设置为application/jsonapplication/xml来指示PUT请求内容的格式.

  • 不幸的是,如果你想让它成为一个开放的API,许多人将无法使用Content-Type标头.令人遗憾的是,你通常需要允许一些黑客,即使你也允许标准化的方式. (3认同)