app04-Swagger2使用

常见注解

请求类

@Api 放在 请求的类上。与 @Controller 并列,说明类的作用,如用户模块,订单类等。
tags=“说明该类的作用”
value=“该参数没什么意义,所以不需要配置”

示例

@Api(tags="订单模块")
@Controller
public class OrderController {

}

方法

@ApiOperation “用在请求的方法上,说明方法的作用”
value=“说明方法的作用”
notes=“方法的备注说明”

@ApiImplicitParams:用在请求的方法上,包含一组参数说明
@ApiImplicitParam:对单个参数的说明
name:参数名
value:参数的说明、描述
required:参数是否必须必填
paramType:参数放在哪个地方
· query --> 请求参数的获取:@RequestParam
· header --> 请求参数的获取:@RequestHeader
· path(用于restful接口)–> 请求参数的获取:@PathVariable
· body(请求体)–> @RequestBody User user
· form(普通表单提交)
dataType:参数类型,默认String,其它值dataType=“Integer”
defaultValue:参数的默认值

示例

@Api(tags="用户模块")
@Controller
public class UserController {

	@ApiOperation(value="用户登录",notes="随边说点啥")
	@ApiImplicitParams({
		@ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
		@ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
		@ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
	})
	@PostMapping("/login")
	public JsonResult login(@RequestParam String mobile, @RequestParam String password,
	@RequestParam Integer age){
		//...
	    return JsonResult.ok(map);
	}
}


响应状态

@ApiResponses:响应状态的说明。是个数组,可包含多个 @ApiResponse
@ApiResponse:每个参数的说明
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类

示例

@Api(tags="用户模块")
@Controller
public class UserController {

	@ApiOperation("获取用户信息")
	@ApiImplicitParams({
		@ApiImplicitParam(paramType="query", name="userId", dataType="String", required=true, value="用户Id")
	}) 
	@ApiResponses({
		@ApiResponse(code = 200, message = "请求成功"),
		@ApiResponse(code = 400, message = "请求参数没填好"),
		@ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
	}) 
	@ResponseBody
	@RequestMapping("/list")
	public JsonResult list(@RequestParam String userId) {
		...
		return JsonResult.ok().put("page", pageUtil);
	}
}


实体类

@ApiModel:对象的整体说明

示例

@ApiModel(description = "用户登录")
public class UserLoginVO  implements  Serializable {

}

@ApiModelProperty 对象中每个参数的说明

示例

@ApiModel
public class UserLoginVO  implements  Serializable {

	@ApiModelProperty(value = "用户名",required=true)	
	private String username;	
}

配置文件 SwaggerConfig

package com.shengun.servicebase;

import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger配置文件
 * 配置注解
 * swagger注解
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }


    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("网站-课程中心API文档")
                .description("本文档描述了课程中心微服务接口定义")
                .version("1.0")
                .contact(new Contact("achang", "http://achang.com", "995931576@qq.com"))
                .build();
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Koa 框架时,设置静态目录和使用 koa2-swagger-ui 可能会产生冲突,因为它们都涉及到路由的处理。 当你使用 Koa 的 `koa-static` 中间件设置静态目录时,该中间件会将请求路径匹配到指定的静态文件,并返回给客户端。这意味着如果你的静态目录的路径与 Swagger UI 的路由路径相同,会导致冲突。 为了避免冲突,您可以考虑以下两种解决方案之一: 1. 将 Swagger UI 的路由路径设置为不与静态目录冲突的路径。例如,将 Swagger UI 的路由路径设置为 `/api-docs` 或其他不与现有静态目录路径冲突的路径。 2. 在 Koa 的路由处理中间件之前使用 `koa2-swagger-ui` 中间件。这样可以确保 Swagger UI 的路由优先于其他路由处理中间件执行,避免冲突。 下面是一个示例代码片段,演示了如何在 Koa 中设置静态目录和使用 koa2-swagger-ui: ```javascript const Koa = require('koa'); const serve = require('koa-static'); const koaSwagger = require('koa2-swagger-ui'); const app = new Koa(); // 设置静态目录 app.use(serve('public')); // 设置 Swagger UI app.use(koaSwagger({ routePrefix: '/api-docs', // 设置 Swagger UI 的路由路径 swaggerOptions: { url: '/swagger.json', // 设置 Swagger JSON 文件的路径 }, })); // 添加其他路由处理中间件 // ... app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在上述示例中,静态目录设置为 `public`,Swagger UI 的路由路径设置为 `/api-docs`。这样就可以避免静态目录和 Swagger UI 的冲突。 请根据您的具体需求和项目结构进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值