日常做开发的同学想必很多人都用过代码自动生成工具。

比较热门的MyBatis-Plus CodeGenerator :

  1. 可以根据项目的配置,先设计好表;

  2. 根据数据库中每一个数据表自动生成对应的 Controller、Service、ServiceImpl、Mapper、Entity 等;

可以大幅减少开发人员繁琐且没有技术含量的事情,提高开发效率。

今天给大家再分享一个代码生成的热门开源项目,openapi-generator.

图片

什么是OpenApi

OpenApi是业界真正的 api 文档标准,其是由 Swagger 来维护的,并被linux列为api标准,从而成为行业标准。

swagger 是一个 api 文档维护组织,后来成为了 Open API 标准的主要定义者,现在最新的版本为17年发布的 Swagger3(Open Api3)。国内绝大部分人还在用过时的swagger2(17年停止维护并更名为swagger3)。swagger2的包名为 io.swagger,而swagger3的包名为 io.swagger.core.v3。

OpenApi-generator

openapi-generator  是生成openApi的工具。

Github 上该项目已经拥有Star 13.9k,是一个非常优秀的项目。

  • 支持多种安装方式

  • 支持通过yaml、JSON文件生成几十种客户端和服务端语言

  • 生成的SDK代码十分优雅,代码中也包含了注释,非常容易阅读

同时,还生成了非常详细的markdown文档。

安装

openapi-generator支持多种安装方式:npm、Homebrew、Docker、JAR、Bash Launcher Script

官方安装文档地址:

https://openapi-generator.tech/docs/installation

下面以npm安装方式简要说明一下:

npm支持的平台有Linux、macOS、Windows,需要本机已经安装了node.js;

使用npm安装openapi-generator非常简单,就三行命令。


# 安装脚手架
npm install @openapitools/openapi-generator-cli -g
# 设置使用的版本
openapi-generator-cli version-manager set 5.1.0
# 添加依赖
npm install @openapitools/openapi-generator-cli -D

添加openAPI依赖

<!-- OpenAPI3 (swagger3) 访问地址:http://localhost:8080/swagger-ui/index.html-->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-boot-starter</artifactId>
  <version>3.0.0</version>
</dependency>
<!-- knife4j UI 访问地址:http://127.0.0.1:8080/doc.html-->
<dependency>
  <groupId>com.github.xiaoymin</groupId>
  <artifactId>knife4j-spring-boot-starter</artifactId>
  <version>3.0.3</version>
</dependency>

添加OpenAPI配置



@EnableOpenApi
@EnableKnife4j
@SpringBootConfiguration
public class SwaggerConfiguration {
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.OAS_30)
      .apiInfo(apiInfo())
      .select()
      .paths(PathSelectors.regex("/error").negate())
      .build();
    
  }
  /**
   * @description:设置API文档信息
   */
  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("XXXXXX项目字段API文档")
        .version("3.0")
        .description("该接口主要列举了数据的条件查询接口,以及表字段的详细介绍")
        .build();
  }
}

生成的API效果

图片

总结

对于该项目,工具覆盖的语言比较全,但是对于早期用户并不是很友好,前辈们踩过了很多坑。

从GitHub上就可以看出,Star 14k,而issuer就已经提了3.2k个,近乎 4:1的比例,确实是有些高。

图片

当然,本篇主要是给大家介绍这个项目,如有兴趣,可以尝试感受下。

项目地址:

https://github.com/OpenAPITools/openapi-generator

写在最后(私活源码)

推荐一个后台管理系统。功能完整,代码结构清晰。值得推荐。

项目介绍

本项目系统是一款基于 SpringBoot + Bootstrap 的极速后台开发框架,可以用于所有的 Web 应用程序,易读易懂。RuoYi 支持集群,支持多数据源,支持分布式事务,拥有完善的权限管理。页面美观,完全响应式布局让你无论是电脑、平板还是手机等,都可随意使用。

图片

运行系统

  1. 首先我们将项目下载到本地,在 Gitee 下载页面下载解压到工作目录。

  2. 导入到 Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next > 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。

  3. 创建数据库 ry 并导入数据脚本 ry_2021xxxx.sqlquartz.sql

  4. 打开项目运行 com.ruoyi.RuoYiApplication.java,出现如下图表示启动成功。

(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙
.-------. ____ __
| _ _ \ \ \ / /
| ( ' ) | \ _. / '
|(_ o _) / _( )_ .'
| (_,_).' __ ___(_ o _)'
| |\ \ | || |(_,_)'
| | \ `' /| `-' /
| | \ / \ /
''-' `'-' `-..-'

  1. 最后打开浏览器,输入:(http://localhost:80 (opens new window)) (默认账户/密码: admin/admin123 )若能正常登陆即说明搭建成功。

内置功能

本项目系统内置了多种后台管理的功能,包含系统管理、系统监控、系统工具。

系统管理
  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。

  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。

  • 菜单管理:配置系统菜单,操作权限,按钮权限标识等。

  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。

  • 岗位管理:配置系统用户所属担任职务。

  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。

  • 参数管理:对系统动态配置常用参数。

  • 通知公告:系统通知公告信息发布维护。

  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。

  • 登录日志:系统登录日志记录查询包含登录异常。

系统监控
  • 在线用户:当前系统中活跃用户状态监控。

  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。

  • 服务监控:监视当前系统 CPU、内存、磁盘、堆栈等相关信息。

  • 缓存监控:对系统的缓存查询,查看、清理等操作。

系统工具
  • 表单构建:拖动表单元素生成相应的HTML代码。

  • 代码生成:前后端代码的生成(java、html、xml、sql)支持 CRUD 下载 。

  • 系统接口:根据业务代码自动生成相关的 api 接口文档。

项目介绍

相信大家很多人都被公司领导要求过,说让大家来开发一个微信公众号的后台系统吧,大家是不是对微信这个各种繁琐的条件弄得非常头疼,今天给大家分享出一块源代码,大家以后如果有需要的,可以直接拿过来复制一下使用呦。

本项目系统是一个支持公众号管理系统,支持多公众号接入。本项目提供公众号菜单、自动回复、公众号素材、简易CMS、等管理功能,请注意本项目仅为管理后台界面,需配合后端程序wx-api一起使用。

项目简介

本项目系统是一个微信公众号管理系统,目前主要实现了如下功能:

● 公众号菜单管理
● 消息自动回复
● 素材管理
● 模板消息
● 粉丝管理

同时它提供了如下跟公众号无关的功能

● CMS文章管理
● 对象存储
● 权限管理(管理后台菜单权限、接口权限、角色权限)

技术选型

  • 核心框架:Spring Boot

  • 安全框架:Apache Shiro

  • 持久层框架:MyBatis-Plus

  • 公众号开发框架:WxJava

  • 后端脚手架:renren-fast

  • 页面交互:Vue2.x

  • UI框架:ElementUI

  • 管理后台界面模板:renren-fast-vue

  • 富文本编辑器:tinymce5

功能演示

           

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

源码获取方式:

​扫码关注本号,后台回复 私活

扫码关注本号,后台回复 私活

持续关注本号,分享更多私活源码

(文章里不能放二维码)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐