這個(gè)項(xiàng)目建立在 Boot 2.x 上,但它應(yīng)該與最新的 Boot2.4.x5 相關(guān)。
要?jiǎng)?chuàng)建項(xiàng)目,請(qǐng)轉(zhuǎn)到start.spring.io并為要使用的GraphQL傳輸選擇啟動(dòng)器:
依賴(lài){
實(shí)現(xiàn) 'org.springframework.experimental:graphql-spring-boot-starter:1.0.0-SNAPSHOT'
// ...
MavenCentral()
maven { url 'https://repo.spring.io/snapshot' } // Spring 快照
架構(gòu)
spring.graphql.schema.locations=classpath:graphql/
spring.graphql.schema.printer.enabled=false
你可以聲明RuntimeWiringConfigurer
在 Spring 的配置與 GraphQL 引擎豆類(lèi)和使用這些登記的數(shù)據(jù)獲取程序,類(lèi)型旋轉(zhuǎn)變壓器,和更多:
公共類(lèi) PersonDataWiring 實(shí)現(xiàn) RuntimeWiringConfigurer {
私有的最終 PersonService 服務(wù);
公共 PersonDataWiring(PersonService 服務(wù)){
}
@覆蓋
builder.type("查詢(xún)", 接線(xiàn) ->
}
查詢(xún)dsl存儲(chǔ)庫(kù)
spring.graphql.path=/graphql
spring.graphql.websocket.path=/graphql
# 必須從客戶(hù)端收到“CONNECTION_INIT”消息的時(shí)間
聲明一個(gè)WebInterceptor
bean,通過(guò)HTTP和WebSocket請(qǐng)求在GraphQL的Web攔截中注冊(cè)。
GraphiQL
spring.graphql.graphiql.enabled=true
指標(biāo)
management.metrics.graphql.autotime.enabled=false
management.endpoints.web.exposure.include=health,metrics,info
請(qǐng)求訪(fǎng)問(wèn)位置/actuator/metrics/graphql.request
。
描述 |
樣本值 |
|
---|---|---|
結(jié)果 |
請(qǐng)求結(jié)果 |
“成功”、“錯(cuò)誤” |
一個(gè)DataFetcher
指標(biāo)定時(shí)器可在/actuator/metrics/graphql.datafetcher
。
標(biāo)簽 |
描述 |
樣本值 |
---|---|---|
小路 |
數(shù)據(jù)獲取器路徑 |
“查詢(xún).項(xiàng)目” |
結(jié)果 |
數(shù)據(jù)獲取結(jié)果 |
“成功”、“錯(cuò)誤” |
錯(cuò)誤投票
測(cè)試
依賴(lài){
testImplementation 'org.springframework.graphql:spring-graphql-test:1.0.0-SNAPSHOT'
// 也添加這個(gè),除非 spring-boot-starter-webflux 也存在
}
存儲(chǔ)庫(kù){
maven { url 'https://repo.spring.io/milestone' } // 春季里程碑
}
@SpringBootTest
@AutoConfigureGraphQlTeste
私有 WebGraphQlTester graphQlTester;
}
針對(duì) Spring WebFlux 的基于 HTTP 的 GraphQL,使用模擬服務(wù)器:
@AutoConfigureWebTestClient
公共類(lèi) MockMvcGraphQlTests {
@自動(dòng)連線(xiàn)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
公共類(lèi) MockMvcGraphQlTests {
@自動(dòng)連線(xiàn)
@SpringBootTest
公共類(lèi) MockMvcGraphQlTests {
@自動(dòng)連線(xiàn)
無(wú)效訂閱(){
.executeSubscription()
StepVerifier.create(result)
.expectNext("卓悅")
.verifyComplete();
訂閱測(cè)試直接針對(duì)WebGraphQlHandler
HTTP和WebSocket傳輸委托的對(duì)象執(zhí)行。它通過(guò)WebInterceptor
鏈,然后調(diào)用GraphQL的Java返回一個(gè)響應(yīng)流Publisher
。
-
JAVA
+關(guān)注
關(guān)注
19文章
2952瀏覽量
104480 -
spring
+關(guān)注
關(guān)注
0文章
338瀏覽量
14295 -
GraphQL
+關(guān)注
關(guān)注
0文章
14瀏覽量
558
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論