如何在SpringBoot中使用HATEOAS

  介绍

如何在SpringBoot中使用HATEOAS ?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

SpringBoot是什么

SpringBoot一种全新的编程规范,其设计目的是用来简化新弹簧应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。

<强>其他风格简介

介绍HATEOAS之前先简单介绍一下休息,休息是具象状态传输的缩写,翻译过来的意思是表达性状态转换r是一种架构的风格

<强>理查森成熟度模型

理查森提出了其他一种成熟度模型,我们称之为理查森成熟度模型,这种模式将其他按照成熟度划分为4个等级

<李>

Level0:使用HTTP作为WEB服务的传输方式,以其他样式公开SOAP WEB服务

<李>

使:使用适当的URI(使用名词)公开资源,这种方式提出了资源的概念

<李>

二级:资源使用正确的HTTP URI +方法,比如更新用户就用把方式,查询用得到的方式

<李>

Level3:使用HATEOAS(作为应用程序状态引擎的超媒体),在资源的表达中包含了链接信息,客户端可以在链接信息中发现可以执行的操作

<强> HATEOAS是什么?

HATEOAS代表“超媒体是应用程序状态的引擎”

从前言我们已经可以清楚知道,使用HATEOAS约束是其他风格中成熟度最高的,也是官方推荐的一种方式,没使用HATEOAS的项目,服务端和客户端是耦合的,客户端只能通过相关文档来知道服务端做了什么修改,使用HATEOAS约束的休息服务,服务端修改接口信息后,客户端可以通过服务器提供的资源的表达来智能地发现可以执行的操作,客户端不需要做啥修改,因为资源信息是会动态改变的

在春天的官网,已经有提供这个项目的相关文档,链接:https://spring。io/项目/spring-hateoas

<强> SpringBoot HATEOAS

SpringBoot中也有集成HATEOAS,本博客介绍一下如何使用

工具准备:

<李>

JDK8.0

<李>

Maven 3.0 +构建工具

<李>

Eclipse或者IntelliJ IDEA

<李>

git& gitlab

<强> Maven相关配置

在pom。xml加上hateoas配置

& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-hateoas   & lt;/dependency>

因为是要写个web简单豆腐例子,其它需要的也加上

& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-data-jpa   ,& lt;/dependency>   ,& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-hateoas   ,& lt;/dependency>   ,& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-web   ,& lt;/dependency>   ,& lt; dependency>   ,& lt; groupId> com.alibaba   ,& lt; artifactId> druid   ,& lt; version> 1.0.25   ,& lt;/dependency>   ,& lt; dependency>   ,& lt; groupId> mysql   ,& lt; artifactId> mysql-connector-java   ,& lt; version> 5.1.40   ,& lt;/dependency>      ,& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-test   ,& lt; scope> test   ,& lt; exclusions>   ,& lt; exclusion>   & lt;才能groupId> org.junit.vintage</groupId>   & lt;才能artifactId> junit-vintage-engine</artifactId>   ,& lt;/exclusion>   ,& lt;/exclusions>   ,& lt;/dependency>

<强>实体类实现ResourceSupport

模型类实现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=皊ys_user")   public  class  SysUserInfo  extends  ResourceSupport  implements 可序列化的{      ,@ id   ,@GeneratedValue   ,private  Long 标识;   ,@ column(独特=true,长度=20,可空=false)   ,private  String 用户名;   ,@ column(长度=2,nullable=true)   ,private  String 性别;   ,@ column(长度=10,nullable=true)   ,private  String 密码;      ,public  SysUserInfo () {      ,}      ,@JsonCreator   ,public  SysUserInfo (@JsonProperty (“userId") Long  userId, @JsonProperty (“username") String 用户名、   ,,,,,@JsonProperty (“sex") String 性别、@JsonProperty (“password") String 密码){   this.userId 才能=,标识;   时间=this.username 才能;用户名;   时间=this.sex 才能;性别;   this.password 才能=,密码;   ,}   }   …

如何在SpringBoot中使用HATEOAS