HATEOAS的优点有:
具有可进化性并且能自我描述
超媒体(Hypermedia, 例如超链接)驱动如何消费和使用API, 它告诉客户端如何使用API, 如何与API交互, 例如: 如何删除资源, 更新资源...:
客户端更多的需要了解API内在逻辑
如果API发生了一点变化(添加了额外的规则, 改变规则)都会破坏API的消费者....下面我们可以使用POSTMAN来测试一下效果:
首先添加一笔数据:
返回结果:
没问题, 这就是我想要的效果.
然后看一下GET:
也没问题....然后把集合用上面刚刚建立的父类进行包装
使用刚刚建立的CrateLinksForVehicle重载方法对这个包装的集合添加本身的link.
最后看看效果:
嗯, 没问题. ...POST:
结果:
由于POST方法里面没有选择任何fields, 所以返回所有的属性.
下面试一下GET:
再试一下GET, 选择几个fields:
OK, 效果都如预期.