spring hat,spring ha
目录
简介链接链接舒莉模板链接关系表示模型总结
简介
跳靴提供了引擎的便捷使用方式,本文详细讲解跳羚提供的这些基本方法。
链接Links
HATEOAS的一个非常重要的特征就是在资源资源中包含超媒体,而超媒体最简单的表示就是链接。
春天的帽子为我们简化了封装链接的功能。
我们看一个HTML中的link标签的例子:
head link rel=样式表 type= text/CSS href=主题。CSS rel=外部无跟随//head可以看到一个环有两个比较重要的属性,一个是超链接代表环的链接,还有一个属性是相对表示的当前文档与被链接文档之间的关系。
我们看下Link中的关键方法:
(String href){返回新链接(href)的公共静态链接;}的公共静态链接(字符串href,字符串关系){返回新链接(href,关系);}的公共静态链接(String href,Link relation relation){ return new Link(href,relation);}可以传入超链接和关系来构建一个环对象。
看下面的例子:
链接链接=链接。的(/某物);link=Link.of(/something , my-rel )其中链接关系是关联关系的一个封装接口,注意,它是一个接口,我们可以使用IanaLinkRelations中的具体实现来对其赋值,如下所示:
REL_SELF=IanaLinkRelations .自我;链接关系REL _ FIRST=IanaLinkRelations .第一;链接关系REL _上一个=IanaLinkRelations .prev link relations REL _ NEXT=IanaLinkRelations .接下来;链接关系REL _ LAST=IanaLinkRelations .最后;
URI templates
上面的例子中环是指定好的,是静态的。有时候我们希望环可以根据参数进行变换,那么这样的环就是动态的链接,我们可以通过定义上呼吸道感染模板来实现。
所以Link还可以通过UriTemplate来构建:
(UriTemplate模板,字符串关系){返回新链接(模板,关系)的公共静态链接;} public static Link of(UriTemplate template,Link relation relation){ return new Link(template,relation);}UriTemplate是对URI模板的封装,我们看一个使用的例子:
链接链接=链接。of(/{ segment }/something {?参数} );MapString,Object values=new HashMap();values.put(segment , path );values.put(parameter ,42);assertThat(link.expand(values)).getHref()).等于(/path/什么?parameter=42’);上面的例子中,通过线来构建一个链接,然后调用发展传入参数对应的地图,来构建真实的超链接值。
除了直接使用string之外,还可以传入UriTemplate:
UriTemplate template=UriTemplate。的(/{ segment }/something ).with(新模板变量( parameter ,VariableType .REQUEST _ PARAM);assertThat(template.toString()).等于(/{ segment }/something {?参数} );
Link relations
链接关系指的是环中的裁判员属性。代表的是当前文档与被链接文档之间的关系春天的帽子中有一个链接关系类来表示。
IANA(互联网号码分配机构)预定义了一些关系,可以通过IanaLinkRelations这个类来获取,如下所示:
链接链接=链接。of(/some-resource ),IanaLinkRelations .下一个);assertThat(link.getRel()).等于(链接关系。of( next ));断言(ianalinkrelation。isiana rel(链接。get rel()).为true();
Representation models
我们需要访问的是一个个的资源,然后需要在一个个的资源中加入链接,春帽为我们提供了一个简单的类叫做代表模型.它包含了链接和一些很方便的方法来帮助我们创建带链接的资源。
最简单的使用方法就是创建一个RepresentationModel的子类:
公众的类图书模型扩展了presentationmodelbookmodel {私有最终图书内容;}我们通过add方法来对其添加link:
图书模型。在(book controller上添加(链接到(方法)。类)).getBook(id)).withSelfRel());注意:在这种情况下,我们的接受类型应该是应用程序/hal json。
对于简单类型,我们可以直接使用EntityModel对其进行封装:
人员人员=新人(‘戴夫’,‘马修斯’);EntityModelPerson模型=entitymodel。(人的);对于集合,可以使用CollectionModel:
收款人=收款人。单身(新人(‘戴夫’,‘马修斯’));集合模型个人模型=集合模型。(人的);
00-1010上解释的链接、URI模板、链接关系和表示模型是Spring HATEOAS的基础。如果你掌握了它们,你就基本上掌握了春季HATEOAS。
这就是这篇关于SpringBoot中HATEOAS细节的文章。想了解更多关于HATEOAS的信息,请搜索以前关于流行IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。