Как добавить аннотацию swagger для конечной точки отдыха @GetMapping ("/ **")? - PullRequest
0 голосов
/ 03 января 2019

Я хотел добавить реализацию Swagger для нижеприведенного фрагмента.Но не удалось найти точную аннотацию для чтения URL-адреса от чванства.

Попытка с использованием

    @ApiOperation(httpMethod = "GET",value = "Get Value",response = String.class)
    @ApiImplicitParams({@ApiImplicitParam(name="basePath",paramType = "path")
    @GetMapping(value = "/**")
        public String getUrlPath(HttpServletRequest request){
           return request.getServletPath();
    }

приведенного выше кода не помогла.

    @GetMapping(value = "/**")
    public String getUrlPath(HttpServletRequest request){
       return request.getServletPath();
    }

Ожиданиеполучить URL-адрес как ввод через swagger-ui и вернуть то же самое, что и ответ.

1 Ответ

0 голосов
/ 03 января 2019

Предположим, что ваш контроллер выглядит так:

package com.sample.controller;
@RestController
@RequestMapping
@Api(value = "GreetingsController", tags = {"Just for greetings"})
Public class GreetingsController{

    @ApiOperation(httpMethod = "GET", value = "Get value",notes = "description")
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "OK !"),
            @ApiResponse(code = 500, message = "Internal Error")
    })
  @GetMapping(value = "/")
    public String getUrlPath(HttpServletRequest request){
       return request.getServletPath();
    }
}

Зависимость:

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version> <!-- maybe there a new version -->
</dependency>
<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version> <!-- maybe there a new version -->
</dependency>

Конфигурация:

import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Bean;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configurable
public class AppConfig{

public @Bean Docket restApi() {
    return new Docket(DocumentationType.SWAGGER_2).groupName("GroupeName").apiInfo(apiInfo())
        .select().paths(PathSelectors.regex(".*controller.*")).build();
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder().title("App title").description("App description")
        .termsOfServiceUrl("").license("©Licence").licenseUrl("").version("1.0").build();
  }

}

Application.yml:

server:
  port: 8111
  servlet:
    context-path: /exampleApp

URL-адрес доступа: http://localhost:8111/exampleApp/swagger-ui.html

...