真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBootHATEOAS使用方法

本篇文章為大家展示了SpringBoot HATEOAS使用方法,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

目前創(chuàng)新互聯(lián)公司已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、銅陵網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

REST風(fēng)格簡(jiǎn)介

介紹HATEOAS之前先簡(jiǎn)單介紹一下REST,REST 是 Representational state transfer 的縮寫,翻譯過來的意思是表達(dá)性狀態(tài)轉(zhuǎn)換。REST是一種架構(gòu)的風(fēng)格

Richardson Maturity Model

Richardson 提出了REST一種 成熟度模型,我們稱之為Richardson Maturity Model,這種模式將REST按照成熟度劃分為4個(gè)等級(jí)

Level0:使用HTTP作為WEB服務(wù)的傳輸方式,以REST樣式公開SOAP Web服務(wù)  Level1:使用適當(dāng)?shù)腢RI(使用名詞)公開資源,這種方式提出了資源的概念  Level2:資源使用正確的URI + HTTP方法,比如更新用戶就用put方式,查詢用get方式  Level3:使用HATEOAS(作為應(yīng)用程序狀態(tài)引擎的超媒體),在資源的表達(dá)中包含了鏈接信息,客戶端可以在鏈接信息中發(fā)現(xiàn)可以執(zhí)行的操作

HATEOAS是什么?

HATEOAS代表“超媒體是應(yīng)用程序狀態(tài)的引擎”

從前言我們已經(jīng)可以清楚知道,使用HATEOAS約束是REST風(fēng)格中成熟度最高的,也是官方推薦的一種方式,沒使用HATEOAS的項(xiàng)目,服務(wù)端和客戶端是耦合的,客戶端只能通過相關(guān)文檔來知道服務(wù)端做了什么修改,使用HATEOAS約束的REST服務(wù),服務(wù)端修改接口信息后,客戶端可以通過服務(wù)器提供的資源的表達(dá)來智能地發(fā)現(xiàn)可以執(zhí)行的操作,客戶端不需要做啥修改,因?yàn)橘Y源信息是會(huì)動(dòng)態(tài)改變的

在Spring的官網(wǎng),已經(jīng)有提供這個(gè)項(xiàng)目的相關(guān)文檔,鏈接:https://spring.io/projects/spring-hateoas

SpringBoot HATEOAS

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

工具準(zhǔn)備:

JDK8.0  Maven 3.0+構(gòu)建工具  Eclipse或者IntelliJ IDEA  git&gitlab

Maven相關(guān)配置

在pom.xml加上hateoas配置

 org.springframework.boot  spring-boot-starter-hateoas

因?yàn)槭且獙憘€(gè)web簡(jiǎn)單curd例子,其它需要的也加上

     org.springframework.boot      spring-boot-starter-data-jpa              org.springframework.boot      spring-boot-starter-hateoas              org.springframework.boot      spring-boot-starter-web              com.alibaba      druid      1.0.25              MySQL      mysql-connector-java      5.1.40              org.springframework.boot      spring-boot-starter-test      test                        org.junit.vintage          junit-vintage-engine                  

實(shí)體類實(shí)現(xiàn)ResourceSupport

Model類實(shí)現(xiàn)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;  }}....

接口調(diào)用,基于HATEOAS模式

@GetMapping("/findBySysUserId/{userId}")  public SysUserInfo findBySysUserId(@PathVariable("userId") long userId) {    if (LOG.isInfoEnabled()) {      LOG.info("請(qǐng)求參數(shù)userId : {}" , userId);    }    Optional sysUserInfo = Optional.ofNullable(sysUserRepository.findByUserId(userId));    if (!sysUserInfo.isPresent()) {      throw new NotFoundException("查詢不到用戶信息! userId:"+userId);    }    //Resource resource = new Resource(sysUserInfo.get());    ControllerLinkBuilder linkBuilder = linkTo(methodOn(this.getClass()).findBySysUserId(userId));    sysUserInfo.get().add(linkBuilder.withRel("findBySysUserId"));    return sysUserInfo.get();  }

上述內(nèi)容就是SpringBoot HATEOAS使用方法,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享題目:SpringBootHATEOAS使用方法
本文路徑:http://weahome.cn/article/jdgdhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部