Implementation of Swagger.io und Postman to Springboot

Words
167
Reading
1 min
Listen
Play
5y

Hello Hive and Java Developers and the rest,

as I wrote in my last post, I am setting up a java springboot server, which, when it is finished somewhere far in the future, shall contain a new game "Hamurabi", which will be connected to hive.

Here, in this post, I show, how I have set up Swagger and Postman:

This documentation is based on: @achimmertens/hamurabi-spring-boot-server

Swagger

https://swagger.io/

I have added the following to pom.xml:


<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

To avoid the error message "Failed to start bean 'documentationPluginsBootstrapper';"
I have added into application.properties:

#======================================
# Swagger
#======================================
spring.mvc.pathmatch.matching-strategy=ant-path-matcher

I have created the config file swagger.config in the configuration package:

grafik.png

Here is its content:

package org.chary.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

@Configuration
@EnableSwagger2
public class SwaggerConfig {


    public static final Contact DEFAULT_CONTACT = new Contact(
            "Achim Mertens", "http://peakd.com/@achimmertens", "[email protected]");

    private static final Set<String> DEFAULT_PRODUCES_AND_CONSUMES =
            new HashSet<String>(Arrays.asList("application/json","application/xml"));

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(SwaggerConfig.apiInfo())
                .produces(DEFAULT_PRODUCES_AND_CONSUMES)
                .consumes(DEFAULT_PRODUCES_AND_CONSUMES);
    }

    private static ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("Swagger API")
                .description("Swagger API reference for developers")
                .version("2.0")
                .contact(DEFAULT_CONTACT)
                .termsOfServiceUrl("http://peakd.com/@achimmertens")
                .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0").build();
    }
}

Now, after starting the server, I can see that swagger works:

grafik.png

grafik.png

Postman

I go to https://www.postman.com/downloads/ and download postman.

After Installing the app I start it an click on New/http Request (you don't need to register):

grafik.png

Now, I check, if I get my wished response:

grafik.png

Yes it works :-)))

The next thing is to set up the server to receive data. So stay tuned.

Regards, Achim

Implementation of Swagger.io und Postman to Springboot | Ecency