1

nginxサーバーが提供するスタンドアロンとしてSwagger-UIをインストールしました。

いくつかのマイクロサービスがあり、Spring Boot アプリから swagger json を実装しようとしています。

したがって、それを正しく理解している場合は、そのjson情報を受け取るために、アプリのswaggerエンドポイントへのURLをswagger-uiで指す必要があります。

どうやってやったの?

グラドルで:

dependencies {
    compile("com.mangofactory:swagger-springmvc:0.8.8")
}

アプリに新しい構成を追加しました:

@Configuration
@EnableSwagger
public class SwaggerConfig {
    private SpringSwaggerConfig springSwaggerConfig;
    @Autowired


    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
            this.springSwaggerConfig = springSwaggerConfig;
        }
        @Bean
    // Don't forget the @Bean annotation
 public SwaggerSpringMvcPlugin customImplementation() {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(
                apiInfo()).includePatterns("/saurzcode/.*");
    }
    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo("SaurzCode API", "API for Saurzcode",
                "Saurzcode API terms of service", "mail2saurzcode@gmail.com",
                "Saurzcode API Licence Type", "Saurzcode API License URL");
        return apiInfo;
    }
    }

これを私のコントローラーの1つに追加しました:

@ApiOperation(httpMethod = "GET", value = "Say Hello To World using Swagger")
  @RequestMapping(method = RequestMethod.GET)
String get() {
    ...
}

次の URL でアプリを呼び出すと、次のようになります。

http://localhost:8080/api-docs

私は得る:

{"apiVersion":"1.0","swaggerVersion":"1.2","info":{"title":"SaurzCode API","description":"API for Saurzcode","termsOfServiceUrl":"Saurzcode API terms of service","contact":"mail2saurzcode@gmail.com","license":"Saurzcode API Licence Type","licenseUrl":"Saurzcode API License URL"}}

この時点から、正しいjsonファイルを生成し、実際にswagger uiでそれを指すようにしています:

ここに画像の説明を入力

Swagger UI に URL を入力するとすぐに、次のようになります。

Can't read from server. It may not have the appropriate access-control-origin settings.

これを春のクライアントに追加して、cors を有効にしました。

 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        chain.doFilter(req, res);
    }

それは解決しましたが、Springアプリを再起動すると、ブラウザがこのエラーを再び表示します。シークレットモードを使用すると、再び機能します..ローカルキャッシュのあるもの..何か考えはありますか? ありがとうございました。レイ。

4

0 に答える 0