REST-API开发指南
Controller示例
在服务工程的com.hxhealth.xxx.controller下创建一个XXController.java
@Controller
public class XXController {
}
CookieValue示例
注释表明,CookieValue方法的参数可以绑定到HTTP的Cookie。支持在Servlet和Portlet环境注明处理方法。
@RequestMapping ("/userList")
public String delete(@CookieValue("JSESSIONID") String sessionId ){
}
RequestHeader示例
@RequestMapping("/showJavaBlogerInfo")
public void showHeadInfo(
@RequestHeader("User-Agent"),String userAgent,
@RequestHeader("Accept-Encoding"),String encoding,
@RequestHeader("Keep-Alive"),long keepAlive, ){
}
HttpMethod
@RequestMapping (metthod=RequestMethod.DELETE)
public void delete (@RequestParam String userId) {
System.out.println(userId);
}
RequestMapping
可以在@RequestMapping注解中用{}来表明它的变量部分,例如:
@RequestMapping("/users/{username}")
RequestParam
参数绑定说明:当方法中带有参数时,可以采用@RequestParam 绑定单个请求参数值
@RequestMapping(value = {"/selectPaperDatum}"}, method = RequestMethod.GET)
public ItooResult selectPaperDatum(@RequestParm("studentId") String studentId) {
}
API文档开发指南
说明
开发平台API文档是通过在Rest接口编写swagger注解,通过技术组件反射来动态生产API文档元数据信息。下面具体说明一下注解的使用。
- @Api 描述类/接口的主要用途
- @ApiOperation 描述方法用途
- @ApiImplicitParam 描述方法的参数
- @ApiImplicitParams 描述方法的参数(Multi-Params)
- @ApiIgnore 忽略某类/方法/参数的文档
@Api
用于类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源
@Api(value = "xxx", description = "xxx")
注解 | 属性 | 备注 |
---|---|---|
Api | value | url的路径值 |
tags | 如果设置这个值、value的值会被覆盖 | |
description | 对api资源的描述 | |
basePath | 基本路径可以不配置 | |
position | 如果配置多个Api 想改变显示的顺序位置 | |
produces | For example, “application/json, application/xml” | |
consumes | For example, “application/json, application/xml” | |
protocols | Possible values: http, https, ws, wss. | |
authorizations | 高级特性认证时配置 | |
hidden | 配置为true 将在文档中隐藏 |
@ApiOperation
用于方法上,说明方法的作用,每一个url资源的定义
@ApiOperation(value = "xxx",httpMethod="POST", notes= "xxx",response=String.class)
注解 | 属性 | 备注 |
---|---|---|
ApiOperation | value | url的路径值 |
tags | 如果设置这个值、value的值会被覆盖 | |
notes | 对资源的描述 | |
position | 如果配置多个 想改变显示的顺序位置 | |
produces | For example, “application/json, application/xml” | |
consumes | For example, “application/json, application/xml” | |
protocols | Possible values: http, https, ws, wss. | |
authorizations | 高级特性认证时配置 | |
hidden | 配置为true 将在文档中隐藏 | |
response | 返回的对象 | |
responseContainer | 这些对象是有效的 “List”, “Set” or “Map”.,其他无效 | |
httpMethod | GET, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH” | |
code | http的状态码 默认 200 | |
extensions | 扩展属性 |
@ApiParam
用于方法、参数、字段上,请求属性
@ApiParam(value = "Created user object", required = true)
public ResponseEntity<User> createUser(@RequestBody User user)
注解 | 属性 | 备注 |
---|---|---|
ApiParam | name | 属性名称 |
value | 属性值 | |
defaultValue | 默认属性值 | |
allowableValues | 可以不配置 | |
required | 是否属性必填 | |
access | ||
allowMultiple | 默认为false | |
hidden | 隐藏该属性 | |
example | 示例 |
@ApiResponses
用于方法上,响应集配置
@ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })
@ApiResponse
用于方法上,响应配置
@ApiResponse(code = 400, message = "Invalid user supplied")
注解 | 属性 | 备注 |
---|---|---|
ApiResponse | code | http的状态码 |
message | 描述 | |
response | 默认响应类 Void | |
reference | 参考ApiOperation中配置 | |
responseHeaders | 参考 ResponseHeader 属性配置说明 | |
responseContainer | 参考ApiOperation中配置 |
@ResponseHeader
用于方法上,响应头设置
@ResponseHeader(name="head1",description="response head conf")
注解 | 属性 | 备注 |
---|---|---|
name | 响应头名称 | |
description | 头描述 | |
response | 默认响应类 Void | |
responseContainer | 参考ApiOperation中配置 |
@ApiImplicitParams
用于方法上,包含一组参数说明
@ApiImplicitParam
用于方法上,用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
注解 | 属性 | 备注 |
---|---|---|
paramType | 参数放在哪个地方 | |
name | 参数代表的含义 | |
value | 参数名称 | |
dataType | 参数类型,有String/int,无用 | |
required | 是否必要 | |
defaultValue | 参数的默认值 |
@ApiModel
用于类上,描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候
@ApiModelProperty
用于方法、字段上,描述一个model的属性
@ApiIgnore
用于类,属性,方法上,忽略某项api,使用@ApiIgnore
网友评论