2015-02-26 4 views
0

Я использовал следующую ссылку для создания документов API для моих служб REST с использованием Swagger with Spring.Невозможно прочитать swagger JSON

http://jakubstas.com/spring-jersey-swagger-configuration/#comment-1726

Все идет гладко, но когда я пытаюсь получить доступ к API документации для чванства, используя URL http://localhost:8080/rest/api-docs, я получаю не могу прочитать чванство JSON. Кто-то может помочь?

+0

Ваш '/ отдых/путь апи-docs' должен содержать файл чванство спецификации. когда ваш браузер указывает на URL-адрес, и если вы установили 'swagger-ui', он будет читать из этого файла и отображать его на хорошей веб-странице API-документа. – Xianlin

ответ

1

Swagger не работает на местном языке! Вы можете скачать Swagger Ui для местных

+0

Можете ли вы предоставить дополнительную информацию? Почему вы говорите, что он не будет работать локально? – Ryan

+0

Если вы запускаете свое приложение в «localhost», вы не можете использовать онлайн-версию. Вам необходимо загрузить пользовательский интерфейс Swagger для локального пользователя и запустить его. –

0

Вы пробуйте этот путь.

@Configuration 
@EnableSwagger 
// Loads the spring beans required by the framework 
public class MySwaggerConfig 
{ 

    private SpringSwaggerConfig springSwaggerConfig; 

    /** 
    * Required to autowire SpringSwaggerConfig 
    */ 
    @Autowired 
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) 
    { 
     this.springSwaggerConfig = springSwaggerConfig; 
    } 

    /** 
    * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc 
    * framework - allowing for multiple swagger groups i.e. same code base 
    * multiple swagger resource listings. 
    */ 
    @Bean 
    public SwaggerSpringMvcPlugin customImplementation() 
    { 
     return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(
       ".*?"); 
    } 

    private ApiInfo apiInfo() 
    { 
     ApiInfo apiInfo = new ApiInfo(
       "xx", 
       "xxxx", 
       "My Apps API terms of service", 
       "xxx", 
       null, 
       null); 
     return apiInfo; 
    } 
} 







<dependency> 
       <groupId>com.mangofactory</groupId> 
       <artifactId>swagger-springmvc</artifactId> 
       <version>0.9.5</version> 
      </dependency> 
0

Я решил эту проблему, добавив следующий файл в папку, ресурс

swagger.properties

добавил там недвижимость:

springfox.documentation.swagger.v2 .path =/api/swagger.json

, а затем в коде добавил:

@Configuration 
@EnableSwagger2 
@PropertySource(value = "classpath:swagger.properties") 
public class PathConfiguration { 
@Value("${springfox.documentation.swagger.v2.path}") 
private String swagger2Endpoint; 

и затем фасоль простой компонент для конфигурации Dockect как:

@Bean 
public Docket api() { 
    return new Docket(DocumentationType.SWAGGER_2) 
      .select() 
      .apis(RequestHandlerSelectors.any()) 
      .paths(PathSelectors.any()) 
      .build(); 
} 
Смежные вопросы