使用Yoga灵活实现REST
Adding Flexibility to your REST Implementation with Yoga
如何使用REST提供一个基于领域模型图的简单REST API?有两个选择,IBM, SAP, Microsoft, Red Hat提倡的OData,还有一个轻量实现方案Yoga.
对于如下的领域模型图:
如果用传统REST方式想得到图中从User-->Friends-->Favortie--?Albums-->Songs这样一个图路径,可能使用多次调用,如:
|
增加网络开销和Json序列化,性能是一个瓶颈。
而是要Yoga提供的selector语法,可以通过如下URL:
|
例如:
GET /user/1.json?selector=id,name,favoriteArtists(id,name)
得到的JSON内容如下:
|
Yoga还直接提供对领域模型的元注释:
|
这样就不必在REST请求中像上例中显式声明id和name了:
GET /user/1.json?selector=favoriteArtists(id,name)
这样得到的Json结果和上面是一样的。
Yoga支持 Spring MVC REST, Jersey, or RESTEasy。