0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Spring认证_什么是Spring GraphQL?

IT胶囊 来源:「Spring」认证安全架构 作者:「Spring」认证安全 2021-08-09 11:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

数据整合

Spring GraphQL 支持使用Querydsl通过 Spring Data Querydsl 扩展来获取数据。Querydsl 提供了一种灵活但类型安全的方法,通过使用注释处理器生成元模型来表达谓词。

公共接口 AccountRepository 扩展了 Repository,,>

}

然后用它来创建一个DataFetcher

DataFetcher dataFetcher =

DataFetcher> dataFetcher =

所述DataFetcher构建一个QuerydslPredicate从GraphQL请求参数,并使用它来获取数据。Spring Data支持QuerydslPredicateExecutorJPA、MongoDB和LDAP。

Spring GraphQL 存储库中的 webmvc-http 示例使用 Querydsl 来获取artifactRepositories

Querydsl 允许集成Predicate通过接受一个来自定义绑定到一个的请求QuerydslBinderCustomizer。对于请求中的可用参数,请求参数默认绑定为“等于”。

自动注册

存储库必须使用@GraphQlRepository默认情况下,查询返回的 GraphQL 类型名称必须与存储库域类型的简单名称匹配。如果它们不匹配,您可以使用的typeName属性@GraphQlRepository来设置 GraphQL 类型名称。

安全

要应用更细粒度的安全性,Spring Security 中注释添加到涉及获取 GraphQL 响应的特定部分的服务方法,例如@PreAuthorize@Secured。由于上下文传达使安全性和其他上下文在数据获取级别可用,因此应该是

测试

GraphQlTester

要创建GraphQlTester,您只需要一个GraphQlService,不需要传输:

.schemaResources(...)

。建造();

GraphQlService graphQlService = new ExecutionGraphQlService(graphQlSource);

WebGraphQlTester

如果没有 WebFlux,你可以支持你的 Spring 配置:

WebTestClient.bindToApplicationContext(上下文)

.baseUrl("/graphql")

WebGraphQlTester 测试器 = WebGraphQlTester.builder(client).build();

WebApplicationContext 上下文 = ... ;

WebTestClient 客户端 =

.configureClient()

。建造();

对于实时运行的服务器的测试:

WebTestClient.bindToServer()

。建造();

查询

字符串查询 = "{" +

" 发布 {" +

" }"+

"}";

graphQlTester.query(查询)

.path("project.releases[*].version")

.hasSizeGreaterThan(1);

错误

graphQlTester.query(查询)

.错误()

。核实()

.entityList(String.class)

错误过滤器可以注册并渗入所有测试:

.errorFilter(error -> ...)

或者直接检查所有错误,将它们标记为已过滤:

。执行()

.satisfy(错误 -> {

});

如果请求没有任何响应数据(例如状态),则使用executeAndVerify代替execute来验证响应中没有错误:

订阅

要测试订阅,您可以GraphQlTester创建创建GraphQlServicegraphql.GraphQL直接调用并返回响应流:

.executeSubscription()

Flux result = graphQlTester.query("订阅{问候}")

.toFlux("问候", String.class);

StepVerifier.create(result)

.expectNext("卓悦")

.verifyComplete();

要使用Web拦截链进行测试,您可以创建WebGraphQlTester一个WebGraphQlHandler

.interceptor((input, next) -> next.handle(input))

WebGraphQlTester graphQlTester = WebGraphQlTester.builder(handler).build();

未完待续……

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    20

    文章

    3015

    浏览量

    117024
  • spring
    +关注

    关注

    0

    文章

    345

    浏览量

    16088
  • GraphQL
    +关注

    关注

    0

    文章

    14

    浏览量

    820
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Japan IT Week Spring 2026 | 广和通携AIoT方案闪耀亮相

    4月8-10日,亚洲领先的IT盛会Japan IT Week Spring在东京有明国际展览中心(Tokyo Big Sight)盛大举行。作为全球物领先的无线通信模组及AI解决方案提供商,广和通以“AIoT Connectivity for a Smarter Digital World”主题重磅亮相。
    的头像 发表于 04-28 18:27 180次阅读
    Japan IT Week <b class='flag-5'>Spring</b> 2026 | 广和通携AIoT方案闪耀亮相

    算力出海新典范:创通新科集团三大矩阵登陆Japan IT Week

    2026年4月8日,亚洲IT与电子技术盛会——日本东京IT消费电子展览会(Japan IT Week Spring 2026)在东京国际展览中心盛大开幕。
    的头像 发表于 04-17 16:27 300次阅读

    广和通携AIoT方案闪耀亮相Japan IT Week Spring 2026

    4月8-10日,亚洲领先的IT盛会Japan IT Week Spring在东京有明国际展览中心(Tokyo Big Sight)盛大举行。作为全球物领先的无线通信模组及AI解决方案提供商,广和通以
    的头像 发表于 04-10 16:11 312次阅读
    广和通携AIoT方案闪耀亮相Japan IT Week <b class='flag-5'>Spring</b> 2026

    TLE989x EvalBoard with TQFP/LQFP spring socket v01_1 评估板深度解析

    TLE989x EvalBoard with TQFP/LQFP spring socket v01_1 评估板深度解析 在电子设计领域,评估板是我们探索和验证新器件性能的重要工具。今天,我们就来
    的头像 发表于 12-20 10:40 2471次阅读

    一款基于Java+Spring Boot+Vue的智慧随访管理系统源码

    智慧随访管理系统源码,一款基于Java+Spring Boot+Vue的B/S架构医院随访管理系统源码,采用前后端分离技术(Ant-Design+MySQL5),具有自主版权和落地案例。 随访管理
    的头像 发表于 11-13 15:38 593次阅读
    一款基于Java+<b class='flag-5'>Spring</b> Boot+Vue的智慧随访管理系统源码

    灯具CQC节能认证办理

    一、什么是CQC节能认证CQC节能认证是由中国质量认证中心(CQC)依据国家能效标准,对产品能效性能进行检测和评定的一项自愿性认证。该认证
    的头像 发表于 11-08 15:52 1122次阅读
    灯具CQC节能<b class='flag-5'>认证</b>办理

    蓝牙BQB认证是什么

    蓝牙BQB认证(BluetoothQualificationBodyCertification),是由蓝牙技术联盟(BluetoothSIG
    的头像 发表于 11-04 17:14 1292次阅读
    蓝牙BQB<b class='flag-5'>认证</b>是什么

    哪些产品要做MIC认证呢?

    日本MIC认证(由日本总务省监管)主要针对无线通信类产品和连接公共电信网络的设备。下面用简单明了的方式告诉你——哪些产品必须做MIC认证、哪些不用。一、必须做MIC认证的产品1.含无线功能的产品
    的头像 发表于 10-30 16:49 1329次阅读
    哪些产品要做MIC<b class='flag-5'>认证</b>呢?

    srrc认证是强制认证吗?

    是的,SRRC认证是中国强制性认证。根据《中华人民共和国无线电管理条例》,所有在中国境内销售和使用的无线电发射设备,都必须申请并取得无线电型号核准认证,也就是SRRC认证。一、为什么S
    的头像 发表于 10-23 17:30 1189次阅读
    srrc<b class='flag-5'>认证</b>是强制<b class='flag-5'>认证</b>吗?

    3C认证派生是什么意思?

    3C认证派生,也叫3C派生认证或3C证书派生申请,是指在已有产品获得3C认证(中国强制性产品认证,CCC)基础上,当企业新增加型号、款式或结构上略有变更的产品时,不必重新做全部测试,而
    的头像 发表于 10-21 15:29 1772次阅读
    3C<b class='flag-5'>认证</b>派生是什么意思?

    TELEC认证怎么办理

    一、TELEC认证简介TELEC认证是日本针对无线通信设备实施的一项强制性认证制度,完整名称为“TelecomEngineeringCenter”。该认证由日本总务省(MIC)授权的T
    的头像 发表于 10-17 11:28 583次阅读
    TELEC<b class='flag-5'>认证</b>怎么办理

    Spring拦截器:你的请求休想逃过我的五指山!

    Spring框架中,拦截器(Interceptor)是一种强大的机制,它允许开发者在请求处理的不同阶段插入自定义逻辑。WebApplicationContext作为Spring Web应用的上下文容器,为拦截器的配置和管理提供了基础支持。
    的头像 发表于 07-26 11:25 853次阅读
    <b class='flag-5'>Spring</b>拦截器:你的请求休想逃过我的五指山!

    哪些产品要做ncc认证

    NCC认证(台湾通讯传播委员会认证)是台湾地区对具备无线通信功能的设备实施的强制性认证制度。只要产品具有射频发射或接收功能,基本上都要通过 NCC 型式认证才能合法在台湾市场销售和使用
    的头像 发表于 07-22 17:19 1570次阅读
    哪些产品要做ncc<b class='flag-5'>认证</b>?

    一文了解什么是 BQB 认证

    在蓝牙产品快速普及的今天,无论是蓝牙耳机、音箱、手表,还是智能家居、车载设备,只要你的产品宣称使用了蓝牙技术,就必须通过BQB认证。那么,BQB认证是什么?为什么它如此重要?该怎么做?本文为你一次
    的头像 发表于 07-18 14:53 2279次阅读
    一文了解什么是 BQB <b class='flag-5'>认证</b>

    电能表PTB认证与Eichrecht认证,哪个含金量更高?

    PTB认证与Eichrecht认证的本质差异对比
    的头像 发表于 07-16 14:34 1088次阅读
    电能表PTB<b class='flag-5'>认证</b>与Eichrecht<b class='flag-5'>认证</b>,哪个含金量更高?