2015-12-19 43 views
2

我發現了招搖的和招搖的,我喜歡這個方法。我已經設法讓它至少在Spring啓動時工作。 現在我想將swagger集成到運行在wildfly 9上的Java EE應用程序中。012xx不幸的是,這根本不起作用。 Swagger的記錄確實很差。不能得到招搖的工作(野蠻9)

讓它工作的必要條件是什麼?我從的官方招搖會文件中看到了這些說明。

這是我的build.gradle招搖依賴性:

compile 'io.swagger:swagger-jaxrs:1.5.4' 

這是我的JAX-RS應用程序類:

public class SmamblRestApiApplication extends Application { 

    private Set<Class<?>> classes = new HashSet<>(); 

    public SmamblRestApiApplication() { 
     initClasses(); 
    } 

    private void initSwagger() { 
     BeanConfig beanConfig = new BeanConfig(); 
     beanConfig.setTitle("SmamblV1"); 
     beanConfig.setVersion("1.0"); 
     beanConfig.setSchemes(new String[]{"http"}); 
     beanConfig.setHost("localhost:8080"); 
     beanConfig.setBasePath("/rest/v1"); 
     beanConfig.setResourcePackage("com.myapp.api.v1.rest"); 
     beanConfig.setScan(true); 
    } 

    private void initClasses() { 
     //--- Api Endpoints -------------------------------------- 
     classes.add(RegistrationApi.class); 
     classes.add(MigrationApi.class); 
     classes.add(PhoneNumberApi.class); 
     classes.add(UserResourceApi.class); 
     classes.add(MonitoringApi.class); 
     classes.add(PingApi.class); 
     classes.add(PublicUserResource.class); 


     //--- Filters -------------------------------------------- 
     classes.add(ApiExceptionMapper.class); 
     classes.add(SecurityRolesFilter.class); 

     //--- Swagger -------------------------------------------- 
     classes.add(ApiListingResource.class); 
     classes.add(SwaggerSerializers.class); 
    } 


    @Override 
    public Set<Class<?>> getClasses() { 
     return classes; 
    } 
} 

而且我甚至標註的一個方法有招搖註釋:

@Path("private/user") 
@RolesAllowed({UserRole.USER}) 
@NoCache 
@Api 
public class UserResourceApi { 

    @Inject 
    UserFacade userFacade; 

    @RolesAllowed(UserRole.ADMIN) 
    @Produces(MediaType.APPLICATION_JSON) 
    @GET 
    @ApiOperation("test") 
    public List<UserResource> getAllUsers() { 
     return userFacade.findAllUsers(); 
    } 
// ... 

當試圖到達swagger.json,如上面的文檔中所述,一個空文件是返回(沒有404或s.th.,所以我相信一些工作,但不輸出任何東西)。 我能做什麼?

Btw。任何人都可以解釋我com.wordnik和io.swagger包之間的區別嗎?

回答

1

我認爲你的代碼應該沒問題(我有一個類似於WildFly的配置)。但是,我沒有看到代碼中調用的方法initSwagger。也許問題只是該方法沒有被調用。

+0

哦,不,我忘了打電話給我自己的方法。這太尷尬了:-D謝謝你的提示! – peez80