springboot集成swagger

1,什么是 swagger?

        口头说就是通过这个,可以测试你后端开发的api,什么接口描述,请求参数都不用自己封装。同时也方便前端人员查看api,一举多得。

2,怎么配置?

        现在swagge都是微服务架构,我简单在springboot中配置一下,这里我的环境是:

idea,jdk8,gradle。

①在gradle中引入相关jar配置

compile("io.springfox:springfox-swagger-ui:${swagger2Version}") compile("io.springfox:springfox-swagger2:${swagger2Version}")

②在项目相关位置新建swagger配置

        新建class: Swagger2.java 同时继承 WebmvcConfigurerAdapter。这里不做坠述。直接上代码。

@Configuration @EnableSwagger2 public class Swagger2 extends WebMvcConfigurerAdapter {

[@Override](https://my.oschina.net/u/1162528)
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
            .addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars*")
            .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

[@Bean](https://my.oschina.net/bean)
public Docket createRestApi() {
    ParameterBuilder tokenPar = new ParameterBuilder();
    List<Parameter> pars = new ArrayList<Parameter>();
    //header添加token验证
    tokenPar.name("Authorization").description("Authorization").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
    pars.add(tokenPar.build());
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
            .paths(PathSelectors.any())
            .build()
            .globalOperationParameters(pars);
}

private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title("xx管理平台")
            .version("1.0")
            .build();
}

}

        说一下,token验证。现在服务端提供api接口,同时普遍支持单点登录。只有登录用户,获得到相应的token值。在请求header中携带此token,才能正确访问接口。这样保证的一定的系统安全性。这里只是展示真么配置swagger请求header自定义参数。key为Authorization,类型为String字符串。

        还有一点:这里我是通过扫描Api注解的的Controller接口,也可以通过自己需求自己定义需要扫描的地址接口。

③编写Controller

@RestController @RequestMapping("/v1/user") @Api(value = "/v1/user", description = "用户") public class UserController {

private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserService userService;
@Autowired
private OftenUserService oftenUserService;
@Autowired
private RedisUtil redisUtil;

@PostMapping("/add")
@ApiOperation(value = "添加用户", notes = "添加", httpMethod = "POST")
public ResultVo<String> add(@RequestBody UserAddVo userAddVo, HttpServletRequest request){
    logger.info("add:   " + JSON.toJSONString(userAddVo));
    ResultVo<String> resultVo = new ResultVo<>();
    Long useId = RequestUtil.getUserId(request);
    return userService.add(userAddVo,useId);

    } }

    完成后启动项目,访问swagger-ui.html

        一目了然,现在可以通过swagger进行api测试了。但是这个ui默认不是很好看。我们也可以导入第三方ui库修改。推荐swagger-bootstrap-ui。

给个网址:https://www.oschina.net/news/88444/swagger-bootstrap-ui-1-6

转载于:https://my.oschina.net/u/3553496/blog/1800965

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值