欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java gradle项目中日常使用swagger总结

程序员文章站 2022-07-02 21:06:31
...

总结一下日常使用的swagger
这个东西可是java开发接口的利器,不仅可以根据文档生成可视化网页(swagger-ui),更可以生成相应的接口代码(swagger-codegen)
主要是三个文件起作用 上图
Java gradle项目中日常使用swagger总结
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使用说明