swgger非常便於前後端分離開發,通過給swagger添加描述就可以實現前後端共同的開發接口,以下介紹如何給swagger的接口添加描述。
一.創建實體,並在實體和屬性上使用@ApiModel()、@ApiModelProperty()註解。
註解的具體文檔請參考https://blog.csdn.net/dejunyang/article/details/89527348
1.1 工作者實體
//工作者實體
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;
@Data
@TableName("XXW_WORKER_T")
@ApiModel("工作者實體")
public class XxwWorkerT extends FieldFillBean {
/**
* 主鍵
*/
@TableId(value = "XXW_WORKER_ID", type = IdType.UUID)
@ApiModelProperty("主鍵id")
private String xxwWorkerId;
/**
* 姓名
*/
@TableField("NAME")
@NotEmpty(
message = "姓名不能爲空"
)
@ApiModelProperty("姓名")
private String name;
/**
* 年齡
*/
@TableField("AGE")
@ApiModelProperty("年齡")
private Integer age;
/**
* 出生日期
*/
@TableField("BIRTHDAY")
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty("出生日期")
private Date birthday;
@ApiModelProperty("代碼表")
private DemoTable demoTable;
@ApiModelProperty("用戶表吧")
private List<UserBa> userBas;
}
1.2 代碼表實體
//代碼表實體
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("demo表")
public class DemoTable {
@ApiModelProperty("表名稱")
private String tableName;
@ApiModelProperty("表代碼")
private String tableCode;
}
1.3 用戶吧實體
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("userBa表")
public class UserBa {
@ApiModelProperty("用戶名稱")
private String userBaName;
@ApiModelProperty("用戶代碼")
private String userBaCode;
}
二、controller使用resultful風格請求
2.1 post請求
2.1.1 controller實現方式
/**
* 增加一個新的工作者
*/
@ApiOperation("增加一名新的工作者")
@RequestMapping(
value = {"/addOneWorker"},
method = {RequestMethod.POST}
)
public ResponseData addOneWorker(@Valid @RequestBody XxwWorkerT xxwWorkerT){
this.xxwWorkerTService.addOneWorker(xxwWorkerT); //新增接口
return SUCCESS_TIP;
}
2.1.2 效果演示
2.2 get請求
2.2.1 controller實現方式
/**
* 條件分頁查詢工作者名單
*/
@GetMapping(value = "/selectWorkerListByPage")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageSize", value = "每頁顯示數量", required = false, dataType = "Integer", example = "10", paramType = "query"),
@ApiImplicitParam(name = "pageNo", value = "第幾頁,從1開始", required = false, dataType = "Integer", example = "1", paramType = "query"),
@ApiImplicitParam(name = "name", value = "姓名", required = false, dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "age", value = "年齡", required = false, dataType = "Integer", paramType = "query"),
@ApiImplicitParam(name = "birthday", value = "出生日期", required = false, dataType = "String", paramType = "query")
})
@ResponseBody
@ApiOperation(value = "條件分頁查詢工作者名單", notes = "條件分頁查詢工作者名單")
public RawResponseQi selectWorkerListByPage(
@RequestParam(required = false) String name,
@RequestParam(required = false) Integer age,
@RequestParam(required = false) String birthday) {
return xxwWorkerTService.selectWorkerListByPage(name, age, birthday);
}
2.2.2 效果演示
2.3 put請求
2.3.1 controller實現方式
/**
* 更新工作者信息
*/
@PutMapping(value = "/updateOneWorker")
@ApiOperation(value = "修改一名工作者信息", notes = "修改一名工作者信息")
public ResponseData updateOneWorker(@Valid @RequestBody XxwWorkerT xxwWorkerT){
this.xxwWorkerTService.updateOneWorker(xxwWorkerT);
return SUCCESS_TIP;
}
2.3.2 效果演示
2.4 delete請求
2.4.1 delete實現方式
@DeleteMapping(value = "/deleteOneWorker")
@ApiOperation(value = "刪除一名新的工作者", notes = "刪除一名新的工作者")
public ResponseData deleteOneWorker(@RequestParam(value = "id",required = true) String id){
this.xxwWorkerTService.deleteOneWorker(id);
return SUCCESS_TIP;
}
2.4.2 效果演示