2015-06-29 6 views
4

Недавно у меня есть настройка swagger с одним из моих проектов. Его использование jersey2 и JAX-WS для tomcat для успокоительного API. Я использовал следующее руководство для настройкиSwagger api листинг пуст

https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5

$ {BasePath} /swagger.json ответ со следующими

{ "чванство": "2.0", "информация": { "версия" : "1.0.0", "название": ""}, "хозяин": "локальный: 8080", "BasePath": "/ MyAPI", "схемы": [ "HTTP"]}

К сожалению, он не содержит api, который находится под моим пакетом ресурсов. Я попытался с ответом следующий вопрос

swagger - empty listing with no API

Но это не помогло. выше ответ, используя com.wordnik.swagger. * Пакет (ы) Но с руководством я получил io.swagger. * Пакет (ы), который не имеет JaxrsApiReader класса

мое предположение чванство не мог 't сканировать свой список api из пакета ресурсов. Но не удалось выяснить, какую конфигурацию или какой фрагмент кода я пропустил.

Любая помощь? ....

ответ

2

Я была такая же проблема, я использовал другой подход, который работал на меня, добавив информацию только в своем классе приложений. В случае, если у вас есть, что может помочь вам:

public class MyApi extends Application { 

    public MyApi() { 
     super(); 
     BeanConfig beanConfig = new BeanConfig(); 
     beanConfig.setTitle("MyApi"); 
     beanConfig.setVersion("0.0.1"); 
     beanConfig.setSchemes(new String[]{"http", "https"}); 
     beanConfig.setHost("localhost:8080"); 
     beanConfig.setBasePath("/mypath"); 

     //putting only the path to my api unblocked me, I removed "io.swagger.resources" 
     beanConfig.setResourcePackage("system.organization.api"); 
     beanConfig.setScan(true); 
     beanConfig.setPrettyPrint(true); 
    } 

    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> s = new HashSet<>(); 

     s.add(MyApis); 

     //for swagger 
     s.add(ApiListingResource.class); 
     s.add(SwaggerSerializers.class); 

     return s; 
    } 
} 

Затем звенья классов с @API аннотацией появились в swagger.json

В основном делаются с той же инструкцией вы использовали: https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-1.X-Project-Setup-1.5

+1

Мне нужно всего лишь поставить @Api on Services. Мне не нужно переопределять getClasses(). В web.xml добавить: <контекстно-парам> \t \t resteasy.scan \t \t правда \t icaro56

+0

Удаление "io.swagger.resources" из ресурс pakages работает для меня. – Sudheera

4

Похоже, вы забыли отметить остальные конечные точки @Api

+3

Где находится документация по этому поводу. Я не могу его найти. – Catfish

+1

Документы аннотации приведены здесь: https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X –