Spring认证_什么是Spring GraphQL?第一课:http://www.360doc.com/content/21/0806/16/57383615_989788008.shtml 第二课:http://www.360doc.com/content/21/0809/14/57383615_990272843.shtml
启动器这个项目建立在 Boot 2.x 上,但它应该与最新的 Boot2.4.x5 相关。 项目设置要创建项目,请转到start.并为要使用的GraphQL传输选择启动器:
在生成的项目中, 依赖{ // Spring GraphQL 启动 实现 'org.springframework.experimental:graphql-spring-boot-starter:1.0.0-SNAPSHOT' // ... } 存储库{ MavenCentral() maven { url 'https://repo./milestone' } // 春季里程碑 maven { url 'https://repo./snapshot' } // Spring 快照 } 架构默认情况下,GraphQL 架构文件将在 spring.graphql.schema.locations=classpath:graphql/ 所述模式模式可以在“/GraphQL/模式”被graphQL通过HTTP。这不是默认允许的: spring.graphql.schema.printer.enabled=false DataFetcher登记你可以声明 @成分 公共类 PersonDataWiring 实现 RuntimeWiringConfigurer { 私有的最终 PersonService 服务; 公共 PersonDataWiring(PersonService 服务){ this.service = 服务; } @覆盖 公共无效配置(RuntimeWiring.Builder builder){ builder.type("查询", 接线 -> Wiring.dataFetcher("people", env -> this.service.findAll())); } } 查询dsl存储库扩展 网络搜索默认情况下,GraphQL HTTP 访问地址 HTTP POST“/graphql”。路径可以自定义: spring.graphql.path=/graphql 默认情况下,GraphQL WebSocket 支持“/graphql”处的 WebSocket。下面显示了适用于 WebSocket 处理的属性: spring.graphql.websocket.path=/graphql # 必须从客户端收到“CONNECTION_INIT”消息的时间 spring.graphql.websocket.connection-init-timeout=60s GraphQL WebSocket 默认关闭。要启用它:
声明一个 声明一个 GraphiQLSpring Boot 启动器包含一个GraphiQL页面,默认情况下该页面在“/graphiql”中公开。您可以按如下方式配置: spring.graphql.graphiql.enabled=true spring.graphql.graphiql.path=/graphiql 指标当启动器 management.metrics.graphql.autotime.enabled=false 以下部分可能在您的应用程序配置中,可以通过Actuator Web 指标公开。如下所示: management.endpoints.web.exposure.include=health,metrics,info 请求事件请求访问位置
DataFetcher 发生一个
错误投票GraphQL 错误点击选择所在的位置
测试Spring GraphQL 测试支持,将以下内容添加到您的类路径中,这是一个 依赖{ testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.graphql:spring-graphql-test:1.0.0-SNAPSHOT' // 也添加这个,除非 spring-boot-starter-webflux 也存在 testImplementation 'org.springframework:spring-webflux' // ... } 存储库{ MavenCentral() maven { url 'https://repo./milestone' } // 春季里程碑 maven { url 'https://repo./snapshot' } // Spring 快照 } 对于 Spring MVC 的基于 HTTP 的 GraphQL,用作 @SpringBootTest @AutoConfigureMockMvc @AutoConfigureGraphQlTeste 公共类 MockMvcGraphQlTests { @自动连线 私有 WebGraphQlTester graphQlTester; } 针对 Spring WebFlux 的基于 HTTP 的 GraphQL,使用模拟服务器: @SpringBootTest @AutoConfigureWebTestClient @AutoConfigureGraphQlTeste 公共类 MockMvcGraphQlTests { @自动连线 私有 WebGraphQlTester graphQlTester; } 对于GraphQL通过HTTP与正在运行的服务器: @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @AutoConfigureGraphQlTeste 公共类 MockMvcGraphQlTests { @自动连线 私有 WebGraphQlTester graphQlTester; } 订阅可以在没有 WebSocket 的情况下进行测试,如下所示: @SpringBootTest @AutoConfigureGraphQlTeste 公共类 MockMvcGraphQlTests { @自动连线 私有 WebGraphQlTester graphQlTester; @测试 无效订阅(){ Flux<String> result = this.graphQlTester.query("订阅{问候}") .executeSubscription() .toFlux("问候", String.class); // 使用“reactor-test”中的 StepVerifier 来验证流... StepVerifier.create(result) .expectNext("嗨") .expectNext("卓悦") .expectNext("你好") .verifyComplete(); } } 订阅测试直接针对 |
|
来自: 王先生的内容 > 《Spring国际认证》