调试 Dubbo 接口
定义目标服务器地址
直连
注册中心
配置参数
版本号和分组
类名
string
、java.lang.String
,那么可以不填写类名。Apifox 会自动推断类名。java.util.List
。其它集合类型同理,即选择完整名称。com.dubbo.example
Package 内名为 User
的 DTO,那么需要完整填写 com.dubbo.example.User
。消息
{{变量名}}
,并且还支持添加“动态值”。复杂参数
{
"$class": "字段的 Java 类名",
"$": "字段的值"
}
java.util.HashMap cannot be cast to xxx.xxx.Dto
形式的报错,这表示 Apifox 将 DTO 的类型自动推断为 java.util.HashMap
。而服务器定义的是一个具体的自定义类名,两者不匹配,此时需要在调用时指定字段的类名。 假设 DTO 为:
addresses
字段内元素的类名为 com.dubbo.example.Address
,以避免其类型被自动推断为 java.util.HashMap
:{
"name": "Tom",
"age": 3,
"addresses": [
{
"$class": "com.dubbo.example.Address",
"$": {
"province": "Guangdong",
"city": "Guangzhou"
}
},
{
"$class": "com.dubbo.example.Address",
"$": {
"province": "Guangdong",
"city": "Shenzhen"
}
}
]
}
java.util.ArrayList
这个 Java 类名,然后在消息体内手动指定数组元素的类名为 com.dubbo.example.Address
:[
{
"$class": "com.dubbo.example.Address",
"$": {
"province": "Guangdong",
"city": "Guangzhou"
}
},
{
"$class": "com.dubbo.example.Address",
"$": {
"province": "Guangdong",
"city": "Shenzhen"
}
}
]
多参数
映射关系
Java | JSON | JSON 示例 |
---|---|---|
boolean, java.lang.Boolean | boolean | true, false |
char, java.lang.Character | string | "\u0066", "f" |
java.lang.String | string | "Hello World!" |
byte, java.lang.Byte, short, java.lang.Short, int, java.lang.Integer, long, java.lang.Long | integer | 1, -10, 0 |
float, java.lang.Float, double, java.lang.Double | float | 1.1, -10.0, 0 |
java.math.BigDecimal | object | {"value": 1.1} |
java.util.List<V\>, java.util.Set<V\>, dataType[] | array | [v, …] |
java.util.Map<K,V>, DTO, POJO | object | {"k": v, …} |
enum | object | {"name": "ENUM_VALUE"} |
java.util.Date, java.sql.Date, java.sql.Timestamp, java.sql.Time | string | "2020-01-01 00:00:00" |
java.time.LocalDateTime, java.time.LocalTime | string | "2020-01-01T00:00:00" |
java.time.LocalDate | string | "2020-01-01" |
调用接口
校验响应
前后置操作
Apifox 商业专业版可使用 Dubbo 的前后置操作功能
pm.request
pm.request.attachments
:对 RpcContext 的 Attachment 进行操作,语法与 pm.request.headers 相同pm.request.params
:对请求参数进行操作,拥有 2 个方法get(index)
:获取请求参数set(index, object)
:设置请求参数pm.response
pm.response.json()
:将响应转换为 JavaScript 对象pm.response.text()
:将响应转换为纯文本