关于Swagger

Swagger可视化API,不仅能查看API,还能测试


1.引入相关JAR

<dependency>
    <groupId>com.mangofactorygroupId>
    <artifactId>swagger-springmvcartifactId>
    <version>1.0.2version>
dependency>
<dependency>
    <groupId>org.codehaus.jacksongroupId>
    <artifactId>jackson-mapper-aslartifactId>
    <version>1.9.13version>
dependency>
<dependency>
    <groupId>org.codehaus.jacksongroupId>
    <artifactId>jackson-core-aslartifactId>
    <version>1.9.13version>
dependency>

2.在启动类中加入Swagger相关代码(用的springboot):
 
  
@EnableSwagger
public class AppServiceApplication {

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(AppServiceApplication.class);
        Set sourcesSet = new HashSet();
        sourcesSet.add("classpath:applicationContext.xml");

        application.setSources(sourcesSet);

        application.run(args);
    }

    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(
                "App Service API",
                "",
                "",
                "[email protected]",
                "",
                "");

        return apiInfo;
    } 
  

 
  

3.在代码中添加相关APIAnnotation,如下:

[html] view plain copy
  1. <span style="font-size:18px;background-color: rgb(255, 255, 255);">@ResponseBody  
  2.     @RequestMapping(  
  3.             value = addUsermethod = RequestMethod.POST, produces = application/json; charset=utf-8)  
  4.     @ApiOperation(value = 添加用户, httpMethod = POSTresponse = BaseResultVo.class, notes = add user)  
  5.     public String addUser(@ApiParam(required = truename = postDatavalue = 用户信息json数据) @RequestParam(  
  6.             value = postData) String postData, HttpServletRequest request)  
  7.     {  
  8.         LOGGER.debug(String.format(at function, %s, postData));  
  9.         if (null == postData || postData.isEmpty())  
  10.         {  
  11.             return super.buildFailedResultInfo(-1, post data is empty!);  
  12.         }  
  13.    
  14.         UserInfo user = JSON.parseObject(postData, UserInfo.class);  
  15.         int result = userService.addUser(user);  
  16.         return buildSuccessResultInfo(result);  
  17.     }span>  
说明:
其中@ApiOperation和@ApiParam为添加的API相关注解,个参数说明如下:
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码;
@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”
4.添加Swagger UI配置
在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面,结果目录如下图所示:

修改index.html

将index.html中http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:8080/{projectname}/api-docs

到此为止,所有配置完成,启动你的项目,访问http://localhost:8086/swagger/index.html即可看到如下所示页面:

但是swagger不建议像上面和代码混合在一块,建议swagger用yaml文件单独配置部署生成HTML文件

原博客链接:http://blog.csdn.net/lifuxiangcaohui/article/details/49027317

你可能感兴趣的:(Swagger,api,可视化,测试)