
关注程序员的故事,一块儿用技术改变世界html
SpringFox介绍java
Swagger介绍程序员
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。整体目标是使客户端和文件系统做为服务器以一样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,容许API来始终保持同步。web
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency>
package com.missye.swagger;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import springfox.documentation.oas.annotations.EnableOpenApi;
public class SwaggerApplication {
public static void main(String[] args) { SpringApplication.run(SwaggerApplication.class, args); }
}
package com.missye.swagger;
import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;
/** * 用户实体类信息 * @author missye * @since 2020/07/21 */"用户基本信息") (public class SysUser {
/** * 用户名 */ "用户名") ( private String userName; /** * 用户昵称 */ "用户昵称") ( private String nickName; /** * 邮件 */ "邮件") ( private String email; /** * 手机号 */ "手机号") ( private String mobile;
}
用户控制器:spring
package com.missye.swagger;
import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;import java.util.List;
/** * 用户控制器 * @author missye * @since 2020/07/21 */public class SysUserController {
/** * 保存用户信息 * @param sysUser * @return ResultT<java.lang.String> * @author missye * @since 2020/7/21 */ public ResultT<String> saveSysUser( SysUser sysUser) { //保存用户信息
return ResultT.ok("用户保存成功!"); }
/** * 获取用户信息 * @param sysUser * @return ResultT<com.missye.swagger.SysUser> * @author missye * @since 2020/7/21 */ public ResultT<SysUser> getSysUser( SysUser sysUser) { return ResultT.ok(new SysUser()); }
/** * 获取全部用户信息 * @param * @return ResultT<java.util.List < com.missye.swagger.SysUser>> * @author missye * @since 2020/7/21 */ public ResultT<List<SysUser>> getAllSysUser() { return ResultT.ok(new ArrayList<SysUser>()); }
}
API统一响应工具类:springboot
package com.missye.swagger;
import lombok.Data;
import java.io.Serializable;import java.util.List;
/** * Api响应结果信息 * @author missye * @program springboot-company * @since 2020-05-16 09:42 **/public class ResultT<T> implements Serializable {
private static final long serialVersionUID = 9142315231410107803L;
/** * 成功状态 * @ignore */ private static final Integer SUCCESS = 0; /** * 成功状态 * @ignore */ private static final String MSG_SUCCESS = "业务处理成功"; /** * 失败状态码 * @ignore */ private static final Integer FAIL = -1; /** * 失败状态码 * @ignore */ private static final String MSG_FAIL = "业务处理失败"; /** * 业务错误码 */ private Integer code; /** * 描述 */ private String msg; /** * 结果集 */ private T content;
/** * 业务处理成功,但无业务数据 */ public ResultT() { this(SUCCESS, MSG_SUCCESS, null); }
/** * 业务处理成功,但有业务数据 * @param content 结果数据 */ public ResultT(T content) { this(SUCCESS, MSG_SUCCESS, content); }
/** * 默认处理时自定义业务编码,没有业务数据 * @param code 错误编码 * @param msg 提示消息 */ public ResultT(int code, String msg) { this(code, msg, null); }
/** * 默认处理时,自定义业务编码消息和业务数据 * @param code 错误编码 * @param msg 提示消息 */ public ResultT(int code, String msg, T content) { this.setCode(code); this.setMsg(msg); this.setContent(content); }
/** * 自定义返回错误的消息,无业务数据 * @param code 错误编码 * @param msg 错误消息 * @return 错误结果 */ public static <T> ResultT<T> error(int code, String msg) { return new ResultT<>(code, msg, null); }
/** * 返回默认错误. 有业务数据 * @param msg 错误消息(业务错误) * @return 错误结果 */ public static ResultT<String> error(String msg) { return new ResultT<>(FAIL, msg, null); }
/** * 返回默认错误,无业务数据 * @return 错误结果 */ public static <T> ResultT<T> error() { return error(FAIL, MSG_FAIL); }
/** * 返回自定义成功的消息,无业务数据 * @param code 自定义成功编码 * @param msg 正确消息 * @return 正确结果 */ public static <T> ResultT<T> ok(Integer code, String msg) { return new ResultT<T>(code, msg); }
/** * 成功默认成功状态,有业务数据 * @param content 业务数据能够是List、Entity等数据 * @return 正确结果 */ public static <T> ResultT<T> ok(T content) { return new ResultT<>(content); }
/** * 返回默认成功的状态信息,无业务数据 * @return 正确结果 */ public static <T> ResultT<T> ok() { return new ResultT<>(); }
/** * 根据业务条件返回成功或失败的结果,必须保证成功和失败返回的类型是一致的 * @param checked 检查条件 * @param sucess 条件为true时成功返回的消息 * @param fail 条件为false的失败返回的消息 * @return 返回结果 */ public static ResultT<String> on(boolean checked, String sucess, String fail) { return checked ? ResultT.ok(SUCCESS, sucess) : ResultT.error(FAIL, fail); }
/** * 获取结果编码 * @return 结果编码 * @author zengxueqi */ public Integer getCode() { return code; }
/** * 设置结果编码 * @param code 结果编码 * @return * @author missye */ public ResultT<T> setCode(Integer code) { this.code = code; return this; }
/** * 获取消息提示 * @return 消息提示 * @author missye */ public String getMsg() { return msg; }
/** * 设置消息提示 * @param msg 消息提示 * @return 对象 * @author missye */ public ResultT<T> setMsg(String msg) { this.msg = msg; return this; }
/** * 获取业务数据 * @return 业务数据 * @author zengxueqi */ public T getContent() { return content; }
/** * 设置业务数据 * @param content 业务数据 * @return 结果数据 * @author missye */ public ResultT<T> setContent(T content) { this.content = content; return this; }}
注解说明
服务器
-
@Api: 用在类上,说明该类的做用。能够标记一个Controller类作为swagger 文档资源。 -
@ApiOperation: 用在方法上,说明方法的做用,每个url资源的定义。 -
@ApiModel: 描述一个Model的信息。 -
@ApiModelProperty: 描述一个model的属性。
本文分享自微信公众号 - 程序猿的故事(zengxueqi-music)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。微信