数据交换
数据以 JSON 对象或对象数组的形式传递到 REST API,并从中返回。
对象是一个稀疏的特性 (名称/值对) 组,这意味着,要使对象大小保持最小,没有实际值的特性不必存在于对象中。
创建新对象时,您必须 (根据架构) 传递所需特性的值,否则应仅传递值不为 null 的特性。
例如,创建新用户:
{
"name": "TestUser",
"password": "TestPassword",
"firstName": "Test",
"lastName": "User",
"company": "Intland",
"address": "Gropiusplatz 10",
"zip": "70563",
"city": "Stuttgart",
"country": "DE",
"language": "de",
"email": "[email protected]",
"status": "Activated"
}
更新对象时,应仅传递对象的 URI 以及要更新的特性。
要在更新时清除特性,必须传递值为 null 的特性。
例如,要禁用用户 (更改其状态),只需传递:
{
"uri": "/user/TestUser",
"status": "Disabled"
}
您可以使用任何有效形式的资源 URI 来引用发送到 REST API 的数据中的资源,但在从 REST API 返回的数据中,资源将始终使用主要资源 URI 进行标识,主要资源 URI 基于不可变的唯一资源 ID,例如 "/user/1"。
由于这些数字 URI 不是自我说明性 URI,因此 URI 会与人类可读 (和可本地化的) 资源名称一起打包到资源参考对象中:
{
"uri": "/user/2",
"name": "TestUser"
}
无论在何处传递资源引用,只要资源引用被正式声明为具有 "uri" 和 "name" 的对象,就始终可以直接传递 URI 值。
例如,声明为用户或角色引用数组的特性 "assignedTo",可通过以下形式进行传递。
{
"assignedTo": [
{
"uri": "/user/1",
"name": "bond"
},
{
"uri": "/role/1",
"name": "Project Admin"
}
]
}
简单:
{
"assignedTo": [
"/user/1",
"/role/1"
]
}
也可以使用任何有效形式的资源 URI:
{
"assignedTo": [
"/user/bond",
"/role/Project Admin"
]
}
为特性传递单个值时,正式声明为数组,例如:
{
"assignedTo": [
"/user/bond"
]
}
也可以仅传递单个值而不将其括在数组中:
{
"assignedTo": "/user/bond"
}
这对您有帮助吗?