1. 程式人生 > >Swagger生成API文件

Swagger生成API文件

一、swagger介紹

使用springMVC整合swagger-ui生成 Restful風格的API文件,可以省略手動編寫介面文件的過程,也解決了介面變化需要維護介面文件的過程。

swagger-ui還可以測試spring restful風格的介面功能。

二、Swagger與Spring MVC整合步驟

1.Maven的配置

        <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>1.0.2</version>
        </dependency>
2.複製swagger的相關js等靜態資源到webapp目錄

三、常見swagger註解與使用

Swagger註解使用網址: http://docs.swagger.io/swagger-core/apidocs/

@Api:修飾整個類,描述Controller的作用
@ApiOperation:描述一個類的一個方法,或者說一個介面
@ApiParam:單個引數描述
@ApiModel:用物件來接收引數
@ApiModelProperty:用物件接收引數時,描述物件的一個欄位

四. 使用描述及效果展示:

@RestController
@Api(value = "User API", description = "會員相關操作")
public class UserController {
    @Autowired
    private UserService userService;

    @Login
    @RequestMapping(value = "/user/login", method = RequestMethod.POST)
    @ApiOperation(httpMethod = "POST", notes = "登入介面", value="登入介面")
    public ResponseEntity<Object> login(@ApiParam(value="登入資訊", name="loginParam", required=true)  @RequestBody LoginParam loginParam) {
        Result<UserVO> result = userService.login(loginParam.getEmail(), loginParam.getPassword());
        if (null != result && result.getStatus() == StatusCodes.OK) {// 登入成功
                    WebRuntimeContextHolder.getRuntimeContext().setUser((UserVO) result.getItems());
            return ResponseBuilder.instance().body(null).build();
        } else {
            return ResponseBuilder.instance().body(result).build();
        }
    }
@ApiModel
public class Entity implements java.io.Serializable{

private static final long serialVersionUID = -473540900271240716L;

private Long id;
@ApiModelProperty(required=true)
private Integer logicalDel;
@ApiModelProperty(required=true)
private Date createTime;
@ApiModelProperty(required=true)
private Date updateTime;