问题
- 继HATEOAS带来的问题,资源的自我描述性再次被破坏。
- {value:[{},{}],links:[{},{}]}
首要问题:
- Application/Json无法表述所返回的资源,而每个消息都应该包含足够的信息以便让其它东西知道如何处理信息。
解决方案:
- 创建一种新的MediaType,将资源和这种MediaType进行区分
自定义的媒体类型
例如:application/vnd.niceboat.hateoas+json
- vnd:vendor的缩写,原则性标识,表示这种媒体类型是供应商特定的。
- niceboat:自定义的Vendor标识,也可以包含其他的值,也可以是其他的描述。
- hateoas:表示是否包含hateoas
- +json,表示是Json格式,也告诉客户端如何处理。
带有语义的媒体类型:Semantic Media Type,告诉消费者一些Api的信息
- application/vnd.niceboat.college.friendly+json
- application/vnd.niceboat.college.friendly.hateoas+json
- application/vnd.niceboat.college.full+json
- application/vnd.niceb