我正在使用Play实现RESTful API ...即使我倾向于仅支持JSON,看起来也支持XML是一种好习惯。我在互联网上阅读了一些有趣的文章,介绍了如何设计一个优秀的RESTful API并理解媒体类型应该在URL中 - 最常用的选项似乎是将.json
或.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
中指定媒体类型......但看起来不鼓励或至少不是最佳做法。
答案 0 :(得分:0)
我的印象是这两种方式都是REST API的接受解决方案,所以如果你最喜欢的话,请使用Accept标头!