外观
参数获取
技术交流QQ群:3549030
参数分类
在RESTful API中,常见的入参类型包括:
路径参数(Path Parameters):是从URL路径中提取的参数。通常使用“/”分隔符将参数与URL路径分开,并使用冒号“:”指定参数名。例如:/users/:id
查询参数(Query Parameters):是以“?”作为起始标志的参数列表,每个参数之间使用“&”符号进行分隔。例如:/users?id=123&name=John
请求体(Request Body):是在HTTP请求中传递的主体部分,通常包含JSON或XML格式的数据。可以使用POST、PUT或PATCH方法将请求体发送到服务器。例如:
json
{
"name": "John",
"age": 30
}
- 请求头(Request Headers):是在HTTP请求中添加的一组键值对,用于提供与请求相关的元数据。例如:Content-Type: application/json
总的来说,RESTful API支持多种类型的入参,但是常用的是路径参数、查询参数、请求体和请求头。根据具体业务需求选择合适的入参类型,以便服务器能够正确处理请求并返回合适的响应。
总结一下主要包括三类:
- 简单类型参数
- 对象参数
- 数组参数
简单类型参数获取方法
java
// JFinal GET请求方式
Long tableId = getLong("tableId");
String name = get("name");
// POST请求方式下
String tableName = toStr("tableName");
Integer age = toInt("age");
Boolean isEnabled = toBoolean("isEnabled");
Date date = toDate("date");
复杂类型参数
在POST请求传输较为复杂的参数时,就好出现对象参数、对象数组参数,举例如下:
请求入参:
json
{
"codeTable": {
"moduleId": 80,
"projectId": 73,
"tableName": "t_device_info",
"tableComment": "设备信息表",
"appName": "80",
"className": "DeviceInfo"
},
"codeTableColumns": [
{
"id": 1362,
"tableId": 124,
"columnName": "id",
"columnType": "bigint(20)",
"columnComment": "物理id"
},
{
"id": 1363,
"tableId": 124,
"columnName": "device_code",
"columnType": "varchar(32)",
"columnComment": "设备识别码"
},
{
"id": 1364,
"tableId": 124,
"columnName": "device_mac",
"columnType": "varchar(12)",
"columnComment": "设备MAC地址"
},
{
"id": 1365,
"tableId": 124,
"columnName": "device_ip",
"columnType": "varchar(17)",
"columnComment": "设备IP地址"
}
],
"codeTableRelations": [
{
"mainTableName": "t_device_info",
"mainTableComment": "设备信息表",
"childTableName": "t_device_deploy",
"relationTableType": "multi_child",
"relationTableId": 125,
"projectId": 73,
"moduleId": 80,
"mainTableId": 124
}
]
}
下面来讲解如何获取对象参数及对象数组参数。
对象参数获取方法
java
// POST请求方式下 Model参数获取及转换
CodeTable codeTable = toModel("codeTable", CodeTable.class);
对象数组参数获取方法
java
List<CodeTableColumn> codeTableColumns = toModelList("codeTableColumns", CodeTableColumn.class);
List<CodeTableRelation> codeTableRelations = toModelList("codeTableRelations", CodeTableRelation.class);