我正在开发用于返回单个产品或产品集合的API,因此会有http://api.company.com/products/和http://api.company.com/products/1/等端点返回以下结构中的数据:
// http://api.company.com/products/1/
{
Id: 1
Name: "Product 1"
}
// http://api.company.com/products/
[
{
Id: 1,
Name: "Product 1"
},
{
Id: 2,
Name: "Product 2"
}
]
我目前分别在Accept标头中使用以下媒体类型:
application/vnd.company.product-v1.0+json // single product
application/vnd.company.products-v1.0+json // collection of products
现在看来,使用"product"
和"products"
两种媒体类型似乎并不理想,因为我可以看到它会导致一些混乱,但它们会返回不同的数据结构。所以我想知道这里是否有任何API标准规定你是否应该只使用一种媒体类型?
答案 0 :(得分:0)
我没有指向“REST API标准”的链接,该链接指示您建议的内容是否可接受。但是,在我必须处理的许多REST API中,我没有看到像你提议的那样使用了接受标头的那个。
如果您稍后允许GET /产品上的标记包含有关产品的不同级别的详细信息,会发生什么?您需要不同的Accept标头值(示例application / vnd.company.products-details-v1.0 + json vs application / vnd.company.products-min-v1.0 + json)
我相信只用一个Accept标头值就可以了。