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

一种基于模型自动化生成graphql接口代码的方法技术

技术编号:40708115 阅读:3 留言:0更新日期:2024-03-22 11:08
本发明专利技术涉及计算机技术领域,具体涉及一种基于模型自动化生成graphql接口代码的方法,包括步骤:S1、搭建好环境quarkus\hibernate\Graphql\Mapstruct;S2、定义模型models;S3、标记注解并进行细粒度控制;S4、编译服务;S5、启动服务,通过quarkusDev启动服务,通过graphql访问服务生成的接口。本发明专利技术将常规的CRUD的开发解放出来,只需要定义好模型和注解配置,即可实现相应的功能,高效方便快捷,极大的提高了开发效率。

【技术实现步骤摘要】

本专利技术涉及计算机,具体涉及一种基于模型自动化生成graphql接口代码的方法


技术介绍

1、目前,传统业务crud的做法,其重复工作量大、代码规范不完全统一,比如说需要controler、service、mapper、repository的创建,这冗余且重复。通过数据模型生成graphql api,难以满足日常开发中的开发场景,提供常规的crud服,其开发效率也比较低下。


技术实现思路

1、本专利技术提供一种基于模型自动化生成graphql接口代码的方法,解决了开发效率低下的技术问题。

2、本专利技术提供的基础方案为:一种基于模型自动化生成graphql接口代码的方法,包括步骤:

3、s1、搭建好环境quarkus\hibernate\graphql\mapstruct,其中,quarkus是为openjdk和graalvm定制的kubernates云原生技术栈,hibernate是全orm框架,graphql是api查询语言,mapstruct是映射关系处理器;

4、s2、定义模型models,类型加上注解@sterotypeentity;

5、s3、标记注解并进行细粒度控制;

6、s4、编译服务,基于java annotation processor tool通过java spi机制在编译期获取自定义处理器stereotypeentityprocessor,所有的逻辑从process出发,先过滤类注解再处理字段注解,分别生成对应的类、字段、方法;

7、s5、启动服务,通过quarkusdev启动服务,通过graphql访问服务生成的接口。

8、进一步,s2中,注解通过属性creatable、updatable、deletestrategy控制是否生成创建方法、更新方法以及是否生成删除方法。

9、进一步,s2中,删除方法包括物理删除方法与逻辑删除方法。

10、进一步,s2中,一个entiy对应生成一个graphqlapi接口。

11、进一步,s3中,采用query接口,@filterable标记字段作为查询条件,将查询条件封装到单独一个filte类中,作为list的request body。

12、进一步,s3中,默认模糊查询,需要精确查询时,配置注解@equal,需要生成list<id>查询条件时,配合注解@id。

13、进一步,s3中,采用mutation接口,通过注解@inputcolumn控制用户可操作字段,通过注解@defaultdenum控制枚举默认值。

14、进一步,s3中,通过注解@column(unique=true)对字段进行唯一性校验,通过给类添加注解@check对写入数据的自定义校验逻辑。

15、本专利技术的工作原理及优点在于:本方案基于数据模型、quarkus、hibernate、graphql、java注解处理器,实现一套只需要定义model通过编译就可以生成对应的graphqlapi的query\mutation的方法,这是一种模型到接口的方法,首先在模型entity上面标记注解@sterotypeentity,表示改模型是需要生成对应的graphql接口,其中可以控制对应的删除、创建、修改功能,其次,本方案可以对字段进行控制,包括精确查询、模糊查询、列表查询、嵌套查询,是否可以修改、新增等操作,最后,本方案通过注解处理器在java编译期间解析注解,通过编写字节码实现对应的类、方法的输出,这样通过数据模型生成graphql api,可以满足日常开发中80%以上的开发场景,提供常规的crud服务,重复工作量小,没有冗余与重复,开发效率高。

16、本专利技术将常规的crud的开发解放出来,只需要定义好模型和注解配置,即可实现相应的功能,高效方便快捷,极大的提高了开发效率。

本文档来自技高网...

【技术保护点】

1.一种基于模型自动化生成graphql接口代码的方法,其特征在于,包括步骤:

2.如权利要求1所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S2中,注解通过属性creatable、updatable、deleteStrategy控制是否生成创建方法、更新方法以及是否生成删除方法。

3.如权利要求2所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S2中,删除方法包括物理删除方法与逻辑删除方法。

4.如权利要求3所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S2中,一个Entiy对应生成一个GraphqlApi接口。

5.如权利要求4所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S3中,采用Query接口,@Filterable标记字段作为查询条件,将查询条件封装到单独一个Filte类中,作为List的request Body。

6.如权利要求5所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S3中,默认模糊查询,需要精确查询时,配置注解@Equal,需要生成List<Id>查询条件时,配合注解@Id。

7.如权利要求6所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S3中,采用Mutation接口,通过注解@InputColumn控制用户可操作字段,通过注解@DefaultDenum控制枚举默认值。

8.如权利要求7所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,S3中,通过注解@Column(unique=true)对字段进行唯一性校验,通过给类添加注解@Check对写入数据的自定义校验逻辑。

...

【技术特征摘要】

1.一种基于模型自动化生成graphql接口代码的方法,其特征在于,包括步骤:

2.如权利要求1所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,s2中,注解通过属性creatable、updatable、deletestrategy控制是否生成创建方法、更新方法以及是否生成删除方法。

3.如权利要求2所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,s2中,删除方法包括物理删除方法与逻辑删除方法。

4.如权利要求3所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,s2中,一个entiy对应生成一个graphqlapi接口。

5.如权利要求4所述的一种基于模型自动化生成graphql接口代码的方法,其特征在于,s3中,采用query接口,@filterable标记字段作...

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

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

1