2016-08-09 20 views
0

私はswaggerで私のAPIのドキュメントを作ろうとしています。springのためのswagger:マッピングが見つかりません

私のREST APIは春と典型的なコントローラの助けを借りて書かれている

次のようになります。闊歩を形作るために

@Controller 
@RequestMapping("/mymapping") 
public class ParameterController { 

@Autowired 
Mydao myDao; 

    /** 
    * GET list 
    * 
    * @return The resulting string 
    */ 
    //produces replaced accept-header 
    @RequestMapping(value="/Parameter", method=RequestMethod.GET, produces={MediaType.APPLICATION_JSON_UTF8_VALUE, "application/ld+json"}) 
    public @ResponseBody List<String> getAllParameters() { 

    List<String> params= myDao.getAllParameters(); 
    return params; 
    } 

} 

私は命令hereに従っ:

  1. は、Mavenの
  2. でパッケージを追加しました
  3. コンフィグレーションJavaクラスSwaggerConfigを作成しました(私はSpring向けにJavaコンフィグレーションのみを使用します)
  4. resou WebMvcConfigurerAdapter
  5. を拡張する既存のクラスにRCEハンドラはWebMvcConfigurerAdapter

を延長し、同じクラスの@ComponentScan注釈へのパッケージ「io.swagger」と「springfox.documentation」を追加しかし、私はhttp://localhost:8080/spring-security-rest/api/v2/api-docsを呼び出すたびに、私は

を受け取ります
16:43:43,370 WARN qtp1072754634-13 servlet.PageNotFound:1136 - No mapping found for HTTP request with URI [/spring-security-rest/api/v2/api-docs] in DispatcherServlet with name 'org.springframework.web.servlet.DispatcherServlet-437a7f13' 

コントローラは、コントローラのマッピングのうち、/spring-security-rest/api/v2/api-docsのパスを検索します。それを見つけられない。

私は何を忘れましたか?

ありがとうございます。

答えて

0

このように私のSwaggerConfigクラスルック:

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 

    @Bean 
    public Docket beerMapApi() { 
     return new Docket(DocumentationType.SWAGGER_2) 
       .select() 
        .apis(RequestHandlerSelectors.any()) 
        .paths(regex("/api.*")) 
        .build() 
       .pathMapping("/") 
       .apiInfo(apiInfo()); 
    } 

    @Bean 
    public UiConfiguration uiConfig() { 
     return UiConfiguration.DEFAULT; 
    } 

    private ApiInfo apiInfo() { 
     return new ApiInfoBuilder() 
       .title("title") 
       .description("description") 
       .version("0.1") 
       .build(); 
    } 

} 

と、これは私のWebMvcConfigurerAdapter.addResourceHandlersがどのように見えるかです:

@Configuration 
@EnableWebMvc 
@ComponentScan({ "com.something.server.controller" }) 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry 
       .addResourceHandler("/resources/**") 
       .addResourceLocations("/resources/"); 
     registry 
       .addResourceHandler("swagger-ui.html") 
       .addResourceLocations("classpath:/META-INF/resources/"); 
     registry 
       .addResourceHandler("/webjars/**") 
       .addResourceLocations("classpath:/META-INF/resources/webjars/"); 
    } 

    @Bean 
    public InternalResourceViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/views/jsp/"); 
     viewResolver.setSuffix(".jsp"); 
     return viewResolver; 
    } 

} 
+0

が闊歩するために、特に立体配置のこのWebMvcConfigurerAdapterであるか、それはコントローラに対しても動作しますか?両方とも – user2957954

+0

、完全なコード –

+0

で更新されました。私のクラスはあなたのように見えます。しかし、コントローラのマッピングの中で/ spring-security-rest/api/v2/api-docsを探します。 – user2957954

関連する問題