基于graphql+grpc结构的crud生成器
Contents
只需要输入要发布的服务名称,crud对应的数据库表名就可以生成代码。由于需要获取表信息,还需要数据库连接信息。
先编写代码,你希望生成的东西是什么样。剩下的就是模版、需要填充到模版里面的数据、一些代码封装。尽量减少外部包的引用。结构上尽量贴近当前业务项目,毕竟希望复制生成的代码,做一些少量修改,快速完成业务。不同语言、不同架构,应该都有对应的crud生成方式。
生成的代码目录:
|
|
整体结构本身也需要自动生成,根据不同需求,每次生成前也需要清理。上面的user是数据库表名,根据表名获取到表信息,生成model。
其他的文件生成过程中需要model的一些字段,比如crud中的update,并不知道具体业务中需要更新哪些字段,这时候需要ast获取model中的字段。不同文件生成的需求会不同,golang函数支持参数传入func,相同的返回值类型,正好合适。golang支持对单个生成的go文件格式化。
模版:
|
|
模版中的代码,也可以在go文件中,分出来结构上会整洁些。
其他的可见代码:
Author cm
LastMod 2020-01-24