十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了SpringBoot HATEOAS使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
目前创新互联公司已为上千家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、铜陵网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
REST风格简介
介绍HATEOAS之前先简单介绍一下REST,REST 是 Representational state transfer 的缩写,翻译过来的意思是表达性状态转换。REST是一种架构的风格
Richardson Maturity Model
Richardson 提出了REST一种 成熟度模型,我们称之为Richardson Maturity Model,这种模式将REST按照成熟度划分为4个等级
Level0:使用HTTP作为WEB服务的传输方式,以REST样式公开SOAP Web服务 Level1:使用适当的URI(使用名词)公开资源,这种方式提出了资源的概念 Level2:资源使用正确的URI + HTTP方法,比如更新用户就用put方式,查询用get方式 Level3:使用HATEOAS(作为应用程序状态引擎的超媒体),在资源的表达中包含了链接信息,客户端可以在链接信息中发现可以执行的操作
HATEOAS是什么?
HATEOAS代表“超媒体是应用程序状态的引擎”
从前言我们已经可以清楚知道,使用HATEOAS约束是REST风格中成熟度最高的,也是官方推荐的一种方式,没使用HATEOAS的项目,服务端和客户端是耦合的,客户端只能通过相关文档来知道服务端做了什么修改,使用HATEOAS约束的REST服务,服务端修改接口信息后,客户端可以通过服务器提供的资源的表达来智能地发现可以执行的操作,客户端不需要做啥修改,因为资源信息是会动态改变的
在Spring的官网,已经有提供这个项目的相关文档,链接:https://spring.io/projects/spring-hateoas
SpringBoot HATEOAS
SpringBoot中也有集成HATEOAS,本博客介绍一下如何使用
工具准备:
JDK8.0 Maven 3.0+构建工具 Eclipse或者IntelliJ IDEA git&gitlab
Maven相关配置
在pom.xml加上hateoas配置
因为是要写个web简单curd例子,其它需要的也加上
实体类实现ResourceSupport
Model类实现hateoas提供的ResourceSuppor
import com.fasterxml.jackson.annotation.JsonCreator;import com.fasterxml.jackson.annotation.JsonProperty;import org.springframework.hateoas.ResourceSupport;import javax.persistence.*;import java.io.Serializable;@Entity@Table(name="sys_user")public class SysUserInfo extends ResourceSupport implements Serializable{ @Id @GeneratedValue private Long userId; @Column(unique=true,length=20,nullable=false) private String username; @Column(length=2,nullable=true) private String sex; @Column(length=10,nullable=true) private String password; public SysUserInfo(){ } @JsonCreator public SysUserInfo(@JsonProperty("userId")Long userId,@JsonProperty("username")String username, @JsonProperty("sex")String sex,@JsonProperty("password")String password){ this.userId = userId; this.username = username; this.sex = sex; this.password = password; }}....
接口调用,基于HATEOAS模式
@GetMapping("/findBySysUserId/{userId}") public SysUserInfo findBySysUserId(@PathVariable("userId") long userId) { if (LOG.isInfoEnabled()) { LOG.info("请求参数userId : {}" , userId); } Optional
上述内容就是SpringBoot HATEOAS使用方法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。