0

我正在用 Play 实现一个 RESTful API ......即使我倾向于只支持 JSON,看起来也支持 XML 是一种好习惯。我在 Internet 上阅读了一些关于如何设计好的 RESTful API 和理解的媒体类型应该在 URL 中的有趣文章——最常用的选项似乎是将.jsonor.xml扩展名附加到端点 URL。

现在的问题是:如何在 Play 中实现这一点?我应该像这样为每种格式定义一条路线:

GET     /products.json/:id         controllers.Products.show(id: Int, format: String = "json")
GET     /products.xml/:id          controllers.Products.show(id: Int, format: String = "xml")

...或者我应该定义这样的东西:

GET     /products.:format/:id      controllers.Products.show(id: Int, format: String)

就个人而言,我更喜欢在Accept header... 中指定媒体类型,但看起来不鼓励这样做,或者至少不是最佳做法。

4

1 回答 1

0

我的印象是,这两种方式都是 REST API 的公认解决方案,所以如果您最喜欢,请使用 Accept 标头!

于 2013-11-05T13:40:14.267 回答