一种基于模型自动化生成graphql接口代码的方法与流程

文档序号:37375065发布日期:2024-03-22 10:27阅读:5来源:国知局
本发明涉及计算机,具体涉及一种基于模型自动化生成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对写入数据的自定义校验逻辑。技术总结本发明涉及计算机
技术领域
:,具体涉及一种基于模型自动化生成graphql接口代码的方法,包括步骤:S1、搭建好环境quarkus\hibernate\Graphql\Mapstruct;S2、定义模型models;S3、标记注解并进行细粒度控制;S4、编译服务;S5、启动服务,通过quarkusDev启动服务,通过graphql访问服务生成的接口。本发明将常规的CRUD的开发解放出来,只需要定义好模型和注解配置,即可实现相应的功能,高效方便快捷,极大的提高了开发效率。技术研发人员:梅竹,凌海,莫彬,苏迪受保护的技术使用者:盛宝金融科技有限公司技术研发日:技术公布日:2024/3/21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1