com.github.agliznetsov.swagger-tools:demo-webmvc

code generator to produce java client and server mappings from Swagger / OpenAPI REST API definition

License

License

Categories

Categories

Net Swagger Program Interface REST Frameworks
GroupId

GroupId

com.github.agliznetsov.swagger-tools
ArtifactId

ArtifactId

demo-webmvc
Last Version

Last Version

0.5.6
Release Date

Release Date

Type

Type

jar
Description

Description

code generator to produce java client and server mappings from Swagger / OpenAPI REST API definition

Download demo-webmvc

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.agliznetsov.swagger-tools/demo-webmvc/ -->
<dependency>
    <groupId>com.github.agliznetsov.swagger-tools</groupId>
    <artifactId>demo-webmvc</artifactId>
    <version>0.5.6</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.agliznetsov.swagger-tools/demo-webmvc/
implementation 'com.github.agliznetsov.swagger-tools:demo-webmvc:0.5.6'
// https://jarcasting.com/artifacts/com.github.agliznetsov.swagger-tools/demo-webmvc/
implementation ("com.github.agliznetsov.swagger-tools:demo-webmvc:0.5.6")
'com.github.agliznetsov.swagger-tools:demo-webmvc:jar:0.5.6'
<dependency org="com.github.agliznetsov.swagger-tools" name="demo-webmvc" rev="0.5.6">
  <artifact name="demo-webmvc" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.agliznetsov.swagger-tools', module='demo-webmvc', version='0.5.6')
)
libraryDependencies += "com.github.agliznetsov.swagger-tools" % "demo-webmvc" % "0.5.6"
[com.github.agliznetsov.swagger-tools/demo-webmvc "0.5.6"]

Dependencies

compile (1)

Group / Artifact Type Version
org.springframework.boot : spring-boot-starter-web jar

provided (1)

Group / Artifact Type Version
org.projectlombok : lombok jar

test (3)

Group / Artifact Type Version
org.springframework.boot : spring-boot-starter-test jar
junit : junit jar 4.12
org.slf4j : slf4j-simple jar 1.7.25

Project Modules

There are no modules declared in this project.

swagger-tools

Build Status Download CLI

Overview

This project provide a set of tools to generate java code from API definition.

Source

  • Swagger 2.0 or OpenAPI 3.0 API definition in json/yaml format
  • Extensions
    • x-ignore to exclude operations from the code generation process
    • x-name to specify OpenAPI 3 requestBody parameter name
    • x-base-path to specify OpenAPI 3 API base path
    • x-response-entity to make Client/Server return Spring ResponseEntity object

Targets

  • Model classes. Supported dialects:
    • Jackson2
  • Java client SDK, can be used for unit testing or to create java client applications. Supported dialects:
    • Spring RestTemplate
    • Spring WebClient
    • Apache HttpClient
  • Server API interfaces with HTTP mapping annotations. Supported dialects:
    • Spring WebMVC
    • Spring Webflux
    • JAX-RS

Run from command line

To get list of arguments:

java -jar swagger-tools-cli.jar

To generate models and client code:

java -jar swagger-tools-cli.jar \
--source.location=swagger.yaml \
--target.model.location=./generated \
--target.model.model-package=com.example.model \
--target.client.location=./generated \
--target.client.model-package=com.example.model \
--target.client.client-package=com.example.client \

Run from maven

<build>
    <plugins>
        <plugin>
            <groupId>com.github.agliznetsov.swagger-tools</groupId>
            <artifactId>swagger-tools-maven-plugin</artifactId>
            <version>0.2.0</version>
            <executions>
                <execution>
                    <id>petstore</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <options>
                            <source.location>${project.basedir}/src/main/resources/petstore.yaml</source.location>

                            <target.model.location>${project.build.directory}/generated-sources/swagger</target.model.location>
                            <target.model.model-package>org.swaggertools.demo.model</target.model.model-package>

                            <target.client.location>${project.build.directory}/generated-sources/swagger</target.client.location>
                            <target.client.model-package>org.swaggertools.demo.model</target.client.model-package>
                            <target.client.client-package>org.swaggertools.demo.client</target.client.client-package>
                        </options>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Plugin configuration parameters:

  • skip: Skip code generation
  • help: Print the list of options
  • options: Key/Value map of arguments for the code generator. Same as for the commandline version.

Check also a complete sample application: demo-webmvc

Run from gradle

There is no specific gradle plugin yet, but you can run code generator from gradle using command line version:

configurations {
   swagger
}
 
dependencies {
   swagger 'com.github.agliznetsov.swagger-tools:swagger-tools-cli:0.2.0'
}
 
task "swagger-generate"(type: JavaExec) {
   classpath = configurations.swagger
   main = 'org.swaggertools.cli.Generator'
   args = [
         "--source.location", "src/main/resources/swagger.yaml",
         "--target.model.location", "src/main/java",
         "--target.model.model-package", "com.example.model",
   ]
}

Extensions

Additional targets can be added via java ServiceLoader:

  • Implement Target interface
  • List it in the META-INF/services
  • Add your jar file to the classpath of the CLI or maven plugin

Versions

Version
0.5.6
0.5.5
0.5.4