Swagger includePatterns()

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

@EnableSwagger
@Configuration
public class SwaggerConfig {

  private SpringSwaggerConfig springSwaggerConfig;

  @Autowired
  public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
    this.springSwaggerConfig = springSwaggerConfig;
  }

  @Bean
  public SwaggerSpringMvcPlugin swaggerSpringMvcPlugin() {

    return new SwaggerSpringMvcPlugin(springSwaggerConfig)
            .swaggerGroup("sample-app")
            .includePatterns(
                    "/account/*"
            )
            .apiInfo(apiInfo())
            .build();
  }

  private ApiInfo apiInfo() {
    ApiInfo apiInfo = new ApiInfo(
            "sample-app",
            "sample-app doc",
            "",
            "support@sample-app",
            "",
            ""
    );
    return apiInfo;
  }

Контроллер Отдыха

@RestController
@RequestMapping(value = "/account")
@Api(value = "Change Account details", description = "")
public class ChangeAccountController {

@ApiOperation(value = "Change address")
    @RequestMapping(value = "/addresschange", method = RequestMethod.POST)
    public String addressChange(HttpServletRequest httpRequest, HttpServletResponse httpResponse,
            @Valid @RequestBody User user) throws ServletException, IOException {
        // logic and return something!          
    }
}

Ссылка: Часть информации была передана отсюда: http://java.dzone.com/articles/how-configure-swagger-generate

Проблема / Вопрос:

в SwaggerConfig.java, в includePatterns() метод, когда я даю шаблон как /account/* API не появляется на странице вывода Swagger, тогда как, если я включу шаблон как /account/.* кажется. Зачем? в чем разница между /account/* а также /account/.* в этом случае использования?

Обновить:

Другой вариант использования

@RestController
@RequestMapping(value = "/score")


@ApiOperation(value = "All score", notes = "")
@RequestMapping(value = "", method = RequestMethod.GET)
public @ResponseBody ActionResult allScores(HttpServletRequest httpRequest,
            HttpServletResponse httpResponse) {

}

Если я добавлю шаблон как /score/*, то API появляется в Swagger. Мне не нужно ставить шаблон как /score/.*

1 ответ

Разница в том, что если вы пишете /account/*, это означает, что вы берете любую строку, которая начинается с "/account", а затем содержит как минимум 0 вхождений символа '/', а второй шаблон соответствует строке, начинающейся с "/account/", за которой следует по крайней мере 0 вхождений любого персонажа.

Для получения дополнительной информации см., Например, http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

Другие вопросы по тегам