我正在设计一个RESTful API。我们知道我们想为任何给定资源返回JSON和XML。我一直在想我们会做这样的事情:
GET /api/something?param1=value1
Accept: application/xml (or application/json)
但是,有人为此使用扩展名,就像这样:
GET /api/something.xml?parm1=value1 (or /api/something.json?param1=value1)
这些方法的权衡是什么?未指定扩展名时最好依靠accept标头,但在指定扩展名时依靠荣誉标头吗?这种方法有缺点吗?