国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

Springboot整合GraphQL使你的API更易理解可讀性更強

來源: 責編: 時間:2023-08-09 23:03:53 406觀看
導讀環境:Springboot3.0.9概述一種用于 API 的查詢語言GraphQL 既是一種用于 API 的查詢語言也是一個滿足你數據查詢的運行時。GraphQL 對你的 API 中的數據提供了一套易于理解的完整描述,使得客戶端能夠準確地獲得它需要的

環境:Springboot3.0.9FsK28資訊網——每日最新資訊28at.com

概述

  • 一種用于 API 的查詢語言

GraphQL 既是一種用于 API 的查詢語言也是一個滿足你數據查詢的運行時。GraphQL 對你的 API 中的數據提供了一套易于理解的完整描述,使得客戶端能夠準確地獲得它需要的數據,而且沒有任何冗余,也讓 API 更容易地隨著時間推移而演進,還能用于構建強大的開發者工具。FsK28資訊網——每日最新資訊28at.com

  • 請求你所要的數據

向你的 API 發出一個 GraphQL 請求就能準確獲得你想要的數據,不多不少。GraphQL 查詢總是返回可預測的結果。使用 GraphQL 的應用可以工作得又快又穩,因為控制數據的是應用,而不是服務器。FsK28資訊網——每日最新資訊28at.com

  • 獲取多個資源

GraphQL 查詢不僅能夠獲得資源的屬性,還能沿著資源間引用進一步查詢。典型的 REST API 請求多個資源時得載入多個 URL,而 GraphQL 可以通過一次請求就獲取你應用所需的所有數據。這樣一來,即使是比較慢的移動網絡連接下,使用 GraphQL 的應用也能表現得足夠迅速。FsK28資訊網——每日最新資訊28at.com

  • 描述所有的可能

GraphQL API 基于類型和字段的方式進行組織,而非入口端點。你可以通過一個單一入口端點得到你所有的數據能力。GraphQL 使用類型來保證應用只請求可能的數據,還提供了清晰的輔助性錯誤信息。應用可以使用類型,而避免編寫手動解析代碼。FsK28資訊網——每日最新資訊28at.com

有關GraphQL的語法相關知識,請參考FsK28資訊網——每日最新資訊28at.com

https://graphql.org/中文FsK28資訊網——每日最新資訊28at.com

https://graphql.cn/FsK28資訊網——每日最新資訊28at.com

接下來將以一個完整的示例演示GraphQL的使用。FsK28資訊網——每日最新資訊28at.com

環境配置

  • 引入依賴
<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-graphql</artifactId></dependency><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>  <groupId>com.mysql</groupId>  <artifactId>mysql-connector-j</artifactId>  <scope>runtime</scope></dependency>
  • 配置文件
spring:  datasource:    driverClassName: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/testjpa?serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&useSSL=false    username: root    password: xxxxxx    type: com.zaxxer.hikari.HikariDataSource    hikari:      minimumIdle: 10      maximumPoolSize: 200      autoCommit: true      idleTimeout: 30000      poolName: MasterDatabookHikariCP      maxLifetime: 1800000      connectionTimeout: 30000      connectionTestQuery: SELECT 1  ---spring:  jpa:    generateDdl: false    hibernate:      ddlAuto: update    openInView: true    show-sql: true---spring:  graphql:    path: /graphql    graphiql:      enabled: true      path: /graphiql    cors:      allow-credentials: true      allowed-headers: '*'      allowed-methods: '*'    schema:      locations:      - classpath*:graphql/**/      file-extensions:      - .graphqls      - .gqls      printer:        enabled: true

注意:這里的
spring.graphql.graphql.enabled=true開啟后,將會提供一個UI界面供我們快速查詢測試使用FsK28資訊網——每日最新資訊28at.com

圖片圖片FsK28資訊網——每日最新資訊28at.com

做好以上配置后,接下來就是建立2張表t_book和t_author。FsK28資訊網——每日最新資訊28at.com

實體定義

BookFsK28資訊網——每日最新資訊28at.com

@Entity@Table(name = "t_book")public class Book {  @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  private Long id ;  private String name ;  private Integer pageCount ;  @Transient  private List<Author> author = new ArrayList<>();}

AuthorFsK28資訊網——每日最新資訊28at.com

@Entity@Table(name = "t_author")public class Author {    @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  private Long id ;  private String firstName ;  private String lastName ;  // Book表的主鍵  private Long bid ;}

Repository定義

BookRepositoryFsK28資訊網——每日最新資訊28at.com

public interface BookRepository extends JpaRepository<Book, Long>, JpaSpecificationExecutor<Book> {}

AuthorRepositoryFsK28資訊網——每日最新資訊28at.com

public interface AuthorRepository extends JpaRepository<Author, Long>, JpaSpecificationExecutor<Author> {  List<Author> findByBid(Long bid) ;  }

Service定義

@Servicepublic class BookService {    @Resource  private BookRepository bookRepository ;  @Resource  private AuthorRepository authorRepository ;    public Book queryBook(Long id) {    Book book = bookRepository.findById(id).orElse(null) ;    List<Author> authors = authorRepository.findByBid(id) ;    book.setAuthor(authors) ;    return book ;  }  }

以上是基本的數據庫操作,很容易理解。接下來就是定義GraphQL SchemaFsK28資訊網——每日最新資訊28at.com

GraphQL Schema定義

schema {  query: BookQuery}type BookQuery {  bookById(id: ID): Book}type Book {  id: ID  name: String  pageCount: Int  author: [Author]}type Author {  id: ID  firstName: String  lastName: String}

有關graphql相關語法請參考上面提到的網址。接下來是定義訪問接口FsK28資訊網——每日最新資訊28at.com

Controller接口

@Controllerpublic class BookController {  @Resource  private BookService bookService;  @Resource  private AuthorRepository authorRepository;  @SchemaMapping(typeName = "BookQuery", field = "bookById")  public Book bookById(@Argument Long id) {    return bookService.queryBook(id);  }}

訪問測試

只需訪問統一的入口即可:FsK28資訊網——每日最新資訊28at.com

#該訪問路徑可以在配置文件中修改FsK28資訊網——每日最新資訊28at.com

http://localhost:8080/graphqlFsK28資訊網——每日最新資訊28at.com

圖片圖片FsK28資訊網——每日最新資訊28at.com


FsK28資訊網——每日最新資訊28at.com

這里是訪問的完整的信息,我們可以在請求的query中設置需要訪問的字段,如下:FsK28資訊網——每日最新資訊28at.com

圖片圖片FsK28資訊網——每日最新資訊28at.com

只訪問book信息FsK28資訊網——每日最新資訊28at.com

只訪問部分字段信息只訪問部分字段信息FsK28資訊網——每日最新資訊28at.com

你需要訪問那些字段,是完全由客戶端定義的。FsK28資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-5198-0.htmlSpringboot整合GraphQL使你的API更易理解可讀性更強

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 三言兩語說透webpack對vue的編譯

下一篇: 電腦技巧:Ditto剪切板增強工具介紹(附下載)

標簽:
  • 熱門焦點
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

    疫情帶來了網課,網課盤活了安卓平板,安卓平板市場雖然中途停滯了幾年,但好的一點就是停滯的這幾年行業又有了新的發展方向,例如超窄邊框、高刷新率、多攝鏡頭組合等,這就讓安卓
  • 6月iOS設備性能榜:M2穩居榜首 A系列只能等一手3nm來救

    沒有新品發布,自然iOS設備性能榜的上榜設備就沒有什么更替,僅僅只有跑分變化而產生的排名變動,畢竟蘋果新品的發布節奏就是這樣的,一年下來也就幾個移動端新品,不會像安卓廠商,一
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    &copy;自象限原創作者|程心排版|王喻可2016年7月13日,百度云計算戰略發布會在北京舉行,宣告著百度智能云的正式啟程。彼時的會場座無虛席,甚至排隊排到了門外,在場的所有人幾乎都
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 2022爆款:ROG魔霸6 冰川散熱系統持續護航

    喜逢開學季,各大商家開始推出自己的新產品,進行打折促銷活動。對于忠實的端游愛好者來說,能夠擁有一款夢寐以求的筆記本電腦是一件十分開心的事。但是現在的
  • 蘋果MacBook Pro 2021測試:仍不支持平滑滾動

    據10月30日9to5 Mac 消息報道,蘋果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后獲得了不錯的評價,亮點包括行業領先的性能,令人印象深刻的電池續航,精美豐
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
日韩精品中文字幕在线一区| 91在线播放网址| 欧美在线视频二区| 香蕉免费一区二区三区在线观看| 91.成人天堂一区| 亚洲一区二区在线播放相泽| 国产盗摄一区二区| 欧美天堂一区二区三区| 亚洲午夜激情网页| 国产精品乱看| 久久亚洲精精品中文字幕早川悠里| 视频一区二区三区中文字幕| 亚洲国产精品视频一区| 国产精品毛片大码女人| 91在线观看成人| 中日韩av电影| 国产真实久久| 亚洲一区二区三区中文字幕在线| 一区视频在线看| 亚洲一级片在线观看| 久久国产99| 秋霞电影一区二区| 你懂的一区二区| 精品一区二区在线视频| 欧美99在线视频观看| 亚洲欧洲国产专区| 99这里都是精品| 久久亚洲精精品中文字幕早川悠里 | 久久国产毛片| 日韩精品一级中文字幕精品视频免费观看| 久久久久久九九九九| 一区二区三区av电影| 久久精品一区| 亚洲6080在线| 日韩无一区二区| 欧美午夜免费影院| 香蕉加勒比综合久久| 一本一道久久a久久精品综合蜜臀| 日本 国产 欧美色综合| 精品久久久久久无| 国产精品普通话对白| 国内精品久久久久影院薰衣草| 国产人妖乱国产精品人妖| 亚洲免费播放| 国产成人免费在线观看| 国产精品久久久久久久久久久免费看| 亚洲三级毛片| 成人精品视频一区二区三区| 一区二区三区在线视频免费观看| 欧美视频在线一区| 欧美日韩视频| 国内成人精品2018免费看| 亚洲六月丁香色婷婷综合久久| 欧美久久久久中文字幕| 黄色av日韩| 99国产精品久久久| 国产精品一色哟哟哟| 日韩精品福利网| 亚洲综合丁香婷婷六月香| 国产精品女同一区二区三区| 欧美一区二区视频在线观看| 色一区在线观看| 美女主播一区| 午夜在线视频一区二区区别| 国产一区高清视频| 国产精品二区在线| 成人午夜激情视频| 国产一区二区精品久久| 青青草国产精品97视觉盛宴| 亚洲美女区一区| 亚洲欧美在线另类| 国产视频一区二区在线观看| 欧美xxxxx牲另类人与| 制服丝袜av成人在线看| 欧美伦理电影网| 欧美丝袜自拍制服另类| 色婷婷久久99综合精品jk白丝| 日本久久精品电影| 99视频精品| 国产毛片一区| 久热综合在线亚洲精品| 久久在线视频| 欧日韩精品视频| 欧美三级欧美一级| 91官网在线观看| 欧美日本一区二区| 91精品一区二区三区在线观看| 9191国产精品| 精品福利在线导航| 国产欧美日韩综合| 亚洲精品国产成人久久av盗摄| 自拍偷自拍亚洲精品播放| 亚洲欧洲日产国产综合网| 亚洲v精品v日韩v欧美v专区| 免费在线视频一区| 成人免费观看视频| 狠狠色综合网站久久久久久久| 最近看过的日韩成人| 色综合久久久久久久| 欧美精品日韩一本| 亚洲四区在线观看| 六月婷婷色综合| 韩国一区二区三区在线观看 | 亚洲视频在线观看一区| 亚洲成人动漫在线观看| 奇米一区二区三区av| 欧美一区1区三区3区公司| 亚洲精品1区2区| 欧美女孩性生活视频| 国产精品美日韩| 麻豆freexxxx性91精品| 91丝袜高跟美女视频| 91国内精品野花午夜精品| 日韩精品一区二区三区四区| 亚洲一区视频在线观看视频| 国产精品一区二区三区网站| 悠悠资源网久久精品| 一本久久综合亚洲鲁鲁五月天| 国产日产欧美一区二区三区| 日韩综合在线视频| 国产一区二区三区四区老人| 欧美精品日韩一区| 日韩成人av影视| 欧美视频在线观看| 久久这里都是精品| 激情综合网激情| 午夜影院日韩| 亚洲va天堂va国产va久| 国产综合18久久久久久| 精品国产成人在线影院 | 国产一区二区成人久久免费影院| 亚洲伊人观看| 亚洲精品ww久久久久久p站| 激情一区二区| 国产精品动漫网站| 一本色道久久综合| 国产精品久久久久天堂| 国内精品美女在线观看| 亚洲男同性视频| 国产午夜久久| 亚洲欧美另类综合偷拍| 亚洲黄色一区| 日韩精品一区第一页| 色婷婷香蕉在线一区二区| 水蜜桃久久夜色精品一区的特点| 色偷偷88欧美精品久久久| 首页国产欧美日韩丝袜| 欧美色图第一页| 久久99久国产精品黄毛片色诱| 日韩一区二区三区四区五区六区| 成人一区二区三区视频在线观看 | 五月激情综合网| 欧美猛男gaygay网站| 亚洲欧美影院| 亚洲国产一区二区三区| 欧美日韩精品综合在线| 免费观看30秒视频久久| 国产三级精品在线不卡| 中文字幕一区二区三区乱码在线| 亚洲巨乳在线| 国产一区二区不卡| 亚洲丝袜另类动漫二区| 在线观看一区二区视频| 高清久久久久久| 伊人色综合久久天天| 6080午夜不卡| 夜夜爽www精品| 国产成人日日夜夜| 亚洲高清视频中文字幕| 欧美一级精品在线| 激情欧美国产欧美| 亚洲观看高清完整版在线观看 | 亚洲国产精品影院| 久久在线观看免费| 久久最新视频| 精品电影一区| 欧美精选在线| eeuss影院一区二区三区| 激情六月婷婷综合| 日韩极品在线观看| 一区二区三区欧美日韩| 国产精品国产三级国产三级人妇| 精品少妇一区二区三区视频免付费 | 欧美精品一区二区视频| 麻豆成人av在线| 日韩激情中文字幕| 三级一区在线视频先锋 | 欧美一区二区在线观看| 欧美日韩精品一区二区在线播放| 伊人久久久大香线蕉综合直播| gogo大胆日本视频一区| 成人妖精视频yjsp地址| 粉嫩高潮美女一区二区三区| 国产一区二区三区蝌蚪| 国产一区二区精品久久99| 美女精品自拍一二三四| 久久99精品网久久| 国产伦精品一区二区三区免费| 紧缚奴在线一区二区三区| 午夜久久久久久久久久一区二区|