System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种通过接口文档自动生成网关代码的方法技术_技高网

一种通过接口文档自动生成网关代码的方法技术

技术编号:40459184 阅读:4 留言:0更新日期:2024-02-22 23:15
本发明专利技术涉及计算机技术领域,尤其是一种通过接口文档自动生成网关代码的方法,包括以下步骤:S100,获取待联合的GraphQL服务;S200,为各GraphQL服务创建用于组织数据库中各对象的模式,采用指令定义数据关联,并整合各GraphQL服务的信息;S300,将各GraphQL服务的信息注册至中央的联合网关中,并部署联合网关;S400,解析查询请求,并识别查询请求中涉及的类型和字段;S500,生成若干子查询;S600,将各GraphQL服务的信息与查询请求中涉及的类型和字段进行匹配,将各子查询发送至相应的GraphQL服务进行处理;S700,获取并整合各GraphQL服务的处理结果,生成最终查询结果。采用本方案,能够避免过度获取或不足获取的问题,避免在不同服务间传递冗余数据,从而减少网络带宽的消耗,降低网络延迟。

【技术实现步骤摘要】

本专利技术涉及计算机,特别涉及一种通过接口文档自动生成网关代码的方法


技术介绍

1、网关用于连接多个不同的网络,传统的http网关虽然能够实现数据的跨网络传输,但存在较多的缺陷:

2、1、过度获取(over-fetching)和欠获取(under-fetching):restful api(一种基于http协议的软件架构风格,用于创建、设计和提供web服务)往往使用固定的终结点来提供数据,这可能导致在某些情况下客户端获取过多或不足的数据,从而浪费带宽或需要多次请求。

3、2、多次请求:restful api往往需要多次请求才能获取完整的相关数据,尤其是在复杂的数据关联场景中,这可能导致性能下降。

4、3、版本管理复杂:当api发生变化时,需要使用版本控制来确保不影响现有客户端,这可能导致管理和维护不同版本的api变得复杂。

5、4、灵活性不足:restful api往往需要为每个特定的客户端需求创建专门的终结点,这可能导致api缺乏灵活性,无法满足不同客户端的定制需求。

6、5、耦合性增加:在一些情况下,restful api的设计可能导致客户端和服务器之间的耦合性增加,难以实现松耦合架构。


技术实现思路

1、本专利技术提供了一种通过接口文档自动生成网关代码的方法,能够避免过度获取或不足获取的问题,避免在不同服务间传递冗余数据,从而减少网络带宽的消耗,降低网络延迟。

2、为了达到上述目的,本申请提供如下技术方案:

3、一种通过接口文档自动生成网关代码的方法,包括以下步骤:

4、s100,获取待联合的graphql服务;

5、s200,为各graphql服务创建用于组织数据库中各对象的模式,采用指令定义数据关联,并整合各graphql服务的信息;

6、s300,将各graphql服务的信息注册至中央的联合网关中,并部署联合网关;

7、s400,获取查询请求,由联合网关解析所述查询请求,并识别查询请求中涉及的类型和字段;

8、s500,根据查询请求,生成若干子查询;

9、s600,将各graphql服务的信息与查询请求中涉及的类型和字段进行匹配,并根据匹配结果将各子查询发送至相应的graphql服务进行处理;

10、s700,联合网关获取并整合各graphql服务的处理结果,生成最终查询结果。

11、进一步,所述指令包括@key指令和@extend指令;

12、所述采用指令定义数据关联包括:采用@key指令标识本graphql服务引用的外部领域实体的主键id,所述@key指令的参数指定了用于标识类型的字段;采用@extend指令标识其他graphql服务的领域实体在本graphql服务内部的引用。

13、进一步,s300包括:

14、s301,将各graphql服务的信息注册至中央的联合网关中;

15、s302,编写网关代码生成器代码,并配置联合网关后台各graphql服务的地址;

16、s303,启动联合网关,调用各graphql服务的模式,并验证各graphql服务的模式是否正确,若是,则将各graphql服务的模式整合为联合网关的模式,并生成联合网关的调用代码;

17、s304,测试联合网关的调用代码,并部署联合网关。

18、进一步,所述对象包括类型、字段、查询和变更操作。

19、本专利技术的原理及优点在于:

20、1、分布式系统整合:本方案中,通过联合网关将多个独立的graphql服务整合成一个联合的服务,对于分布式系统而言,不同graphql服务可以独立开发、部署和维护,而联合网关仅需要负责整合各graphql服务,并提供统一的入口,便于管理与数据查询。

21、2、灵活的数据查询:联合网关可以满足用户按需查询所需的数据,接收到查询请求后,由联合网关对查询请求进行分析,再分配子查询至相应的graphql服务进行处理,相对于传统的http网关而言,避免了过度获取或不足获取的问题。采用本方案,客户端可以精确指定需要的字段和关联,从而减少不必要的数据传输,提升数据查询效率。

22、3、避免数据冗余:联合网关解析查询请求,再根据数据关联来查询不同的graphql服务,避免在不同graphql服务间传递冗余数据,从而减少网络带宽的消耗。

23、4、服务自治性:不同的graphql服务可以独立开发和维护,因此可以根据业务需求和技术栈选择最适合的实现方式。

24、5、关联和联合查询:联合网关支持在不同服务之间定义关联,采用@key指令标识本graphql服务引用的外部领域实体的主键id,使得在联合查询中获取关联数据更加简单。

25、6、请求批处理:联合网关可以在后台自动将多个请求合并为一个,从而减少网络延迟。其原理在于,graphql服务具有批处理能力,graphql作为一种api查询语言,在它的一次请求中,可以发送多个查询指令,同时若后台服务器实现了批处理请求的接口,那么多个查询请求会使用批处理的接口完成请求。比如对于根据用户名查询用户信息的接口,前端若需要查询多个用户的数据,根据graphql的设计,可以在一次请求发送两个查询指令,后端通过批处理数据加载器加载多个用户的数据并返回。

本文档来自技高网...

【技术保护点】

1.一种通过接口文档自动生成网关代码的方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的通过接口文档自动生成网关代码的方法,其特征在于:所述指令包括@key指令和@Extend指令;

3.根据权利要求1所述的通过接口文档自动生成网关代码的方法,其特征在于:S300包括:

4.根据权利要求1所述的通过接口文档自动生成网关代码的方法,其特征在于:所述对象包括类型、字段、查询和变更操作。

【技术特征摘要】

1.一种通过接口文档自动生成网关代码的方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的通过接口文档自动生成网关代码的方法,其特征在于:所述指令包括@key指令和@extend指令;

【专利技术属性】
技术研发人员:梅竹刘聪苏迪莫彬
申请(专利权)人:盛宝金融科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1