直接跳到内容

参数获取

技术交流QQ群:3549030

参数分类

在RESTful API中,常见的入参类型包括:

  1. 路径参数(Path Parameters):是从URL路径中提取的参数。通常使用“/”分隔符将参数与URL路径分开,并使用冒号“:”指定参数名。例如:/users/:id

  2. 查询参数(Query Parameters):是以“?”作为起始标志的参数列表,每个参数之间使用“&”符号进行分隔。例如:/users?id=123&name=John

  3. 请求体(Request Body):是在HTTP请求中传递的主体部分,通常包含JSON或XML格式的数据。可以使用POST、PUT或PATCH方法将请求体发送到服务器。例如:

json
{ 
  "name": "John", 
  "age": 30 
}
  1. 请求头(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);
参数获取已经加载完毕