rest 接口设计和参数接收

Posted huanggy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rest 接口设计和参数接收相关的知识,希望对你有一定的参考价值。

请求类别

之前我们一般使用 GET和 POST请求。在 rest 中使用 POST、DELETE、PUT、GET 对应 增删改查 DB 操作

接口风格

参数分为两部分:地址栏参数描述业务操作,请求参数为该操作的具体参数

rest 接口:/{version}/operationSubject/{operationId}/createMainAccount

请求示例:

 

form.on(‘submit(add)‘, function(data) {
    $.ajax({
        // 通过 url 知道这个接口是用于创建主账号
        url:"/mainAccount-client/v2.14/operationSubject/accqwe134fgtr5/createMainAccount",
        type:"POST",
        dataType:"json",
        contentType : ‘application/json;charset=utf-8‘,
        // 账号相关数据
        data: JSON.stringify(data.field),
        success:function(msg){
            console.log("ajax success");
        },
        error:function(){
            console.log("ajax error");
        }
    })
});

 

 

接收参数

1,对于地址栏参数使用 @PathVariable 注解

2,GET 请求参数使用 @RequestParam 注解

3,POST、DELETE、PUT 请求参数使用 @RequestBody 注解

接收 GET 请求示例

// 获取主账号列表
@GetMapping(value = "/{version}/operationSubject/{operationId}/getMainAccount") // rest 接口地址
public String getMainAccount(@PathVariable(value = "version") String version, // 地址栏参数 version
        @PathVariable(value = "operationId") String operationId, // 地址栏参数 operationId
        @RequestParam(required = false) Integer currentPage,  // 请求参数 currentPage
        @RequestParam(required = false) Integer pageSize)  // 请求参数 pageSize
{
    
    // 业务处理
    
}

接收 POST 请求示例

@PostMapping(value = "/{version}/operationSubject/{operationId}/createMainAccount")
public String createMainAccount(@PathVariable(value = "version") String version,
        @PathVariable(value = "operationId") String operationId, 
        @RequestBody String params) 
{
    // 解析请求参数
    JSONObject jsonObject = JSONObject.parseObject(params);
    String opeSubId = jsonObject.getString("opeSubId");
    String fullName = jsonObject.getString("fullName");
    String shortName = jsonObject.getString("shortName");

}

注意:

1,JSON.stringify() 使用

GET 请求不要使用,非GET请求要使用

2,dataType 和 contentType 别忘记了

dataType: "json",
contentType: "application/json; charset=utf-8",

 


以上是关于rest 接口设计和参数接收的主要内容,如果未能解决你的问题,请参考以下文章

常用Rest API各类注解参数接收对照

restful 接口 复杂对象入参

0226 rest接口设计

Java文件上传:Restful接口接收上传文件,缓存在本地

Spring Boot接口设计

SpringBoot/SpringMVC Restful接口全局异常处理