原文地址:https://xeblog.cn/articles/6前端
千言萬語匯成一句話:個人將來式由我作主。java
GraphQL是一個用於 API 的查詢語言,是一個使用基於類型系統來執行查詢的服務端運行時(類型系統由你的數據定義)。GraphQL並無和任何特定數據庫或者存儲引擎綁定,而是依靠你現有的代碼和數據支撐。(完美的一段Copy)spring
基於SpringBoot的運用數據庫
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>4.3.0</version>
</dependency>
<!-- 可視化調試工具 -->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
複製代碼
resources目錄下建立一個名爲root.graphqls的文件後端
# 查詢相關接口
type Query {
# 經過id獲取用戶信息
getUserById(id: Int!): User
# 用戶信息列表
listUser: [User]
}
# 變動相關接口
type Mutation {
# 添加用戶信息
saveUser(user: addUserInput!): Boolean
# 刪除用戶信息
deleteUser(id: Int!): Boolean
# 更新用戶信息
updateUser(user: updateUserInput!): Boolean
}
複製代碼
Query定義的是查詢相關的入口bash
Mutation定義的是增刪改相關的入口spring-boot
geUserById: 與java類中的方法名一致
id: 方法參數,Int(I大寫) 表示是一個int類型,"!"表示非空
User: 返回值類型,這裏返回的是一個java對象
[type]: 表示是一個列表
複製代碼
resources目錄下建立一個{beanName}.graphqls的文件 這個文件是 query/mutation 具體的 scheme 定義字段、類型工具
示例:user.graphqlsui
# 用戶信息對象
type User {
# 編號
id: Int!
# 用戶名
username: String!
# 密碼
password: String!
# 年齡
age: Int
}
# 添加用戶信息輸入參數
input addUserInput {
id: Int!
username: String!
password: String!
age: Int
}
# 更新用戶信息輸入參數
input updateUserInput {
id: Int!
username: String!
password: String!
age: Int
}
複製代碼
graphql默認請求路徑: /graphqlspa
可視化調試界面:/graphiql
訪問地址:http://localhost:8080/graphiql
界面是長這個樣子的
相同名稱的接口組合爲一個接口調用,須要取一個別名用於區分它們
定義別名 相似這樣的格式
別名: 接口
複製代碼