我实现了一种API方法,允许将一些数据导出到文件中。文件的格式由方法的调用者选择。
API方法目前有一个类似于这样的URI形式:/customers/{customerId}/shoppingchart/export/{fileTypeId}
但是什么是"正确" Http-way,如果有的话,实现文件类型选择?是应该通过Http Accept标头还是在URI中指定选择还是以其他方式?并且,如果不支持所询问的格式,返回的正确状态是什么?
答案 0 :(得分:0)
我同意HTTP Accept标头以指定文件类型。
Accept request-header字段可用于指定响应可接受的某些媒体类型。
但是,这并不表示您是否可以创建自己的自定义类型(如果您愿意)。
The HTTProtocol描述了一个Accept标头:
此字段包含以分号分隔的表示方案列表(Content-Type元信息值),该响应将在此请求的响应中被接受。
然后,上述链接完全指向Content-Type的定义。这里重要的是
实验类型的
x-
约定当然也可用。
这告诉我们,我们可以在Accept标头中定义我们自己的自定义类型,前提是我们在x-
前面加上x-ext
.ext
文件),这在HTTP协议中很常见。
如果不支持询问的格式,返回的正确状态是什么?
我认为{strong} 10.4.16中定义的 HTTP 415 - 不支持的媒体类型是合适的。
服务器拒绝为请求提供服务,因为请求的实体采用所请求方法所请求资源不支持的格式。