BAEL-4345 add code for the swagger specify two responses with the same code article
This commit is contained in:
parent
a20006b451
commit
26483e6232
|
@ -0,0 +1,2 @@
|
|||
## Relevant Articles:
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>spring-boot-swagger-2</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>spring-boot-swagger-2</name>
|
||||
<packaging>jar</packaging>
|
||||
<description>Module For Spring Boot Swagger</description>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung.spring-boot-modules</groupId>
|
||||
<artifactId>spring-boot-modules</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<springfox.version>3.0.0</springfox.version>
|
||||
<swagger-codegen-maven-plugin.version>3.0.34</swagger-codegen-maven-plugin.version>
|
||||
<springdoc.version>1.6.10</springdoc.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-ui</artifactId>
|
||||
<version>${springdoc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-oas</artifactId>
|
||||
<version>${springfox.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
<version>${springfox.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.swagger.codegen.v3</groupId>
|
||||
<artifactId>swagger-codegen-maven-plugin</artifactId>
|
||||
<version>${swagger-codegen-maven-plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<inputSpec>${project.basedir}/src/main/resources/static/api_3.yaml</inputSpec>
|
||||
<language>spring</language>
|
||||
<configOptions>
|
||||
<java8>true</java8>
|
||||
<interfaceOnly>true</interfaceOnly>
|
||||
</configOptions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,13 @@
|
|||
package com.baeldung.tworesponses;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class Application {
|
||||
|
||||
public static void main(String args[]) {
|
||||
SpringApplication.run(Application.class, args);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.baeldung.tworesponses;
|
||||
|
||||
import org.springdoc.core.SpringDocConfigProperties;
|
||||
import org.springdoc.core.SpringDocConfiguration;
|
||||
import org.springdoc.core.providers.ObjectMapperProvider;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class Config {
|
||||
|
||||
@Bean
|
||||
SpringDocConfiguration springDocConfiguration() {
|
||||
return new SpringDocConfiguration();
|
||||
}
|
||||
|
||||
@Bean
|
||||
SpringDocConfigProperties springDocConfigProperties() {
|
||||
return new SpringDocConfigProperties();
|
||||
}
|
||||
|
||||
@Bean
|
||||
ObjectMapperProvider objectMapperProvider(SpringDocConfigProperties springDocConfigProperties) {
|
||||
return new ObjectMapperProvider(springDocConfigProperties);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
springdoc.api-docs.enabled=false
|
||||
springdoc.swagger-ui.url=/api_3.yaml
|
|
@ -0,0 +1,45 @@
|
|||
swagger: 2.0.0
|
||||
info:
|
||||
title: Demo api
|
||||
description: Demo api for the article 'specify two responses with same code based on optional parameter'
|
||||
version: 0.1.0
|
||||
paths:
|
||||
/vehicle:
|
||||
get:
|
||||
responses:
|
||||
'200':
|
||||
description: Get a vehicle. Can contain either a Car or a Bike
|
||||
schema:
|
||||
$ref: '#/definitions/CarOrBike'
|
||||
examples:
|
||||
application/json:
|
||||
owner: baeldung
|
||||
plate: AEX305
|
||||
speed:
|
||||
definitions:
|
||||
Car:
|
||||
type: object
|
||||
properties:
|
||||
owner:
|
||||
type: string
|
||||
plate:
|
||||
type: string
|
||||
Bike:
|
||||
type: object
|
||||
properties:
|
||||
owner:
|
||||
type: string
|
||||
speed:
|
||||
type: integer
|
||||
CarOrBike:
|
||||
description: a car will have an owner and a plate, whereas a bike has an owner and a speed
|
||||
type: object
|
||||
required:
|
||||
- owner
|
||||
properties:
|
||||
owner:
|
||||
type: string
|
||||
plate:
|
||||
type: string
|
||||
speed:
|
||||
type: integer
|
|
@ -0,0 +1,44 @@
|
|||
openapi: 3.0.0
|
||||
info:
|
||||
title: Demo api
|
||||
description: Demo api for the article 'specify two responses with same code based on optional parameter'
|
||||
version: 0.1.0
|
||||
paths:
|
||||
/vehicle:
|
||||
get:
|
||||
responses:
|
||||
'200':
|
||||
description: Get a vehicle
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
oneOf:
|
||||
- $ref: '#/components/schemas/Car'
|
||||
- $ref: '#/components/schemas/Bike'
|
||||
examples:
|
||||
car:
|
||||
summary: an example of car
|
||||
value:
|
||||
owner: baeldung
|
||||
plate: AEX305
|
||||
bike:
|
||||
summary: an example of bike
|
||||
value:
|
||||
owner: john doe
|
||||
speed: 25
|
||||
components:
|
||||
schemas:
|
||||
Car:
|
||||
type: object
|
||||
properties:
|
||||
owner:
|
||||
type: string
|
||||
plate:
|
||||
type: string
|
||||
Bike:
|
||||
type: object
|
||||
properties:
|
||||
owner:
|
||||
type: string
|
||||
speed:
|
||||
type: integer
|
Loading…
Reference in New Issue