APiModel和ApiModelProperty对象注解介绍
@ApiModel()
用于类表示对类进行说明,
用于参数用实体类接收
,value–表示对象名,description–描述
这种一般用在post创建的时候,使用对象提交这样的场景
@ApiModelProperty()
用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏
@ApiModel(value = "新增用户请求模型")
@Data //lombok(必须要写)
public class SaveUserRequest {
@ApiModelProperty(value = "主键id")
private int id;
@ApiModelProperty(value = "名称" ,required = true,example = "mike")
private String name;
@ApiModelProperty(value = "邮箱" ,required = true,example = "126.com")
private String email;
private String phone;
新增用户对象接口测试
@ApiOperation("新增用户")
@PostMapping("save")
public JsonData save(SaveUserRequest saveUserRequest) { //参数SaveUserRequest
//返回数据
return JsonData.buildSuccess();
import org.springframework.web.bind.annotation.*;
@ApiOperation("新增用户")
@PostMapping("save")
public JsonData save(@RequestBody SaveUserRequest saveUserRequest) { //参数SaveUserRequest
//返回数据
return JsonData.buildSuccess();
二、Swagger3.x响应结果ApiResponse和测试面板
@ApiResponse 描述接口响应
http://localhost:8081/swagger-ui/index.html/
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@ApiOperation("用户登录")
@PostMapping("login")
@ApiResponses({
@ApiResponse(responseCode = "302",description = "重定向"),
@ApiResponse(responseCode = "403",description = "没权限"),
public JsonData login(
@ApiParam(name = "name", value = "用户名", example = "mike") @RequestParam("name") String name,
@ApiParam(name = "phone", value = "手机号", example = "110") @RequestParam("phone") String phone
//返回数据
return JsonData.buildSuccess();
Try it out|Execute|Response body
三、Swagger3.x和项目整合的注意事项
1)明确接口的Http请求方式:一个接口使用@RequestMapping会生成多个文档
2)线上不要开启接口文档 (修改:swagger.enable=false)
3)考虑团队当下和未来是否可以一直用,没有说百分百好用,缺点和优点都要知道。
一、Swagger3.x对象注解ApiModel讲解APiModel和ApiModelProperty对象注解介绍@ApiModel()用于类表示对类进行说明,用于参数用实体类接收,value–表示对象名,description–描述这种一般用在post创建的时候,使用对象提交这样的场景@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改value–字段说明name–重写属性名字dataType–重写属性类型require
相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。
Swagger简介
egg-
swagger-ui 配置
Eggjs 是阿里巴巴团队开发的,一个基于 Koajs 的框架,相当于
二次封装,相比较 Koajs ,并没有那么高的自由度,但 Eggjs 这种带有规范性的开发更适合在企业中使用。
Swagger 是
RESTFUL 接口的
文档在线自动生成工具。
此
文档基于Eggjs + egg-
swagger-doc 生成
RESTFUL 接口供调试使用。
操作系统:支持 macOS,Linux,Windows
运行环境:建议选择 LTS 版本,最低要求 8.x。
本文制作时对应eggjs版本: 2.27.0
${APP}
├─.vscode
├─app
│ ├─contract // 存放对应type参数为body formData的传参值
│ ├─request // 请求参数
│ │ └─ user.ts
基于协作,更懂中国程序员
Apipost不止于API文档、调试、Mock,
Apipost=Postman+Swagger+Mock后端、前端、测试同时在线编辑,内容实时同步
1.跟 Postman 的对比
尊重并超越,站在巨人的肩膀上、下一个时代的接力棒
2.多人实时协作
不同协作者在同一项目中实时同步项目数据
3.在线文档
一键生成在线文档,前端查看更方便
4.适用人群
满足不同角色研发人员的工作诉求
5. 还有众多优点
比如学习成本更低、适合国人习惯、快捷文档分享、多人实时协作、调试次数无限、项
目接口无限、Mock次数无限等
Swagger3简介
swagger官网:传送门
swagger是一个Api框架,就是一个工具,就比如我们可以使用postman测试接口一样,swagger主要作用是生成RESTFUL接口的文档并且可以提供功能测试;
可以看一下官方文档简介:
What Is Swagger?
Swagger allows you to describe the structure of your APIs so that machines can read them. The ability of APIs to des
1.为什么使用
Swagger3(OpenAPI3)?
swagger官方
文档介绍的功能太过复杂,作为一个后端开发,我们往往只需要用它来自动生成
接口文档,而
Swagger2早就不维护了,因此通过这篇博客找到了springdoc官网
springdoc-openapi
Java库有助于使用Spring Boot项目自动生成API
文档.springdoc-openapi的工作原理是在运行时检查应用程序,以基于
Swagger作为一款API文档生成工具,虽然功能已经很完善了,但是还是有些不足的地方。偶然发现knife4j弥补了这些不足,赋予了Swagger更多的功能,今天我们来讲下它的使用方法。
knife4j简介
knife4j是springfox-swagger的增强UI实现,为Java开发者在使用Swagger的时候,提供了简洁、强大的接口文档体验。knife4j完全遵循了springfox-swagger中的使用方式,并在此基础上做了增强功能,如果你用过Swagger,你就可以无缝切换到knife4j。.
在 Rest 接口上使用,用作返回值的描述
一个包装器,允许列出多个 ApiResponse,若果你需要描述单个 ApiResponse,你仍然必须使用此注解并将@ApiResponse 包装在一个数组中
如果你的 API 在运行中,你可以在浏览器中访问 `http://[your-api-domain]/swagger` 来查看 Swagger 接口文档。
例如,如果你的 API 的域名是 `api.example.com`,你可以在浏览器中访问 `http://api.example.com/swagger` 来查看 Swagger 接口文档。
如果你的 API 是本地运行的,你可以在浏览器中访问 `http://localhost:[your-api-port]/swagger` 来查看 Swagger 接口文档。
例如,如果你的 API 端口是 `8000`,你可以在浏览器中访问 `http://localhost:8000/swagger` 来查看 Swagger 接口文档。
注意,这些地址是 Swagger 接口文档的默认地址,如果你或者你的团队更改了 Swagger 接口文档的默认地址,你需要使用新的地址来访问 Swagger 接口文档。
Spring Boot运行发生异常:Factory method 'dataSource' threw exception; nested exception is org.springframe
49530
Spring+Mybatis 查询所有数据时发生异常:org.apache.ibatis.reflection.ReflectionException: There is no getter for
35897