Java gradle项目中日常使用swagger总结
程序员文章站
2022-07-02 21:06:31
...
总结一下日常使用的swagger
这个东西可是java开发接口的利器,不仅可以根据文档生成可视化网页(swagger-ui),更可以生成相应的接口代码(swagger-codegen)
主要是三个文件起作用 上图
xxxx.yaml: 定义接口的swagger文档
当然根据需求对于swagger oneapi的定义有很多技巧,详细可以参见官网
https://swagger.io/docs/specification/about/
openapi: 3.0.0
info:
title: Sample API
description: Optional multiline or single-line description in [CommonMark](http://commonmark.org/help/) or HTML.
version: 0.1.9
servers:
- url: http://api.example.com/v1
description: Optional server description, e.g. Main (production) server
- url: http://staging-api.example.com
description: Optional server description, e.g. Internal staging server for testing
paths:
/users:
get:
summary: Returns a list of users.
description: Optional extended description in CommonMark or HTML.
responses:
'200': # status code
description: A JSON array of user names
content:
application/json:
schema:
type: array
items:
type: string
xxxx-config.json: 定义codegen生成代码的规则
{
"library": "spring-boot",
"dateLibrary": "legacy",
"hideGenerationTimestamp": true,
"modelPackage": "swagger.model",
"apiPackage": "swagger.api",
"invokerPackage": "swagger",
"interfaceOnly": true,
"useTags": true,
"serializableModel": true
}
build.gradle: gradle项目的配置文件,定义上述两个文件的位置,生成代码的位置,以及获取相关的dependency
sourceSets {
main {
java {
srcDirs 'build/swagger-code-Receiver/src/main/java'
}
}
}
swaggerSources {
Receiver {
inputFile = file("src/main/resources/swagger/xxxx.yml")
code {
language = 'spring'
configFile = file('src/main/resources/swagger/xxxx-config.json')
}
}
}
compileJava.dependsOn swaggerSources.Receiver.code
相关dependency
这里举例使用了org.hidetake.swagger.generator这个三方插件
plugins {
id 'org.springframework.boot' version '2.2.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
id 'org.hidetake.swagger.generator' version '2.16.0'
}
//swagger
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
swaggerCodegen 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.2'
上一篇: swagger
下一篇: Swagger使用说明