REST 最佳实践的一部分是利用响应中的链接来允许客户端从一个实体导航到另一个实体。
例如,如果我有一个具有子帐户的客户对象类型。如果我要求客户使用,/customers/1
那么我可能会提供以下回复
{
"self": "http://localhost:43002/rest/v1/customers/1",
"id": 1,
"name": "Isabella Button",
"number": "000001",
"forename": "Isabella",
"surname": "Button",
"accounts": [
{
"self": "http://localhost:43002/rest/v1/accounts/1",
"id": 1,
"name": "Main Account",
"number": "000001",
"currency": "GBP",
"fromDate": "2013-01-01",
"toDate": "9999-01-01",
"createdDttm": "2013-01-01T00:00:00.000"
}
]
}
请注意,该self
属性包含链接。
但是,假设我不想在客户查询中返回帐户,也许帐户数量可能非常大,所以我不想默认返回它们。
{
"self": "http://localhost:43002/rest/v1/customers/1",
"id": 1,
"name": "Isabella Button",
"number": "000001",
"forename": "Isabella",
"surname": "Button"
}
客户帐户的资源 URL 可以是/customers/1/accounts
但是,由于上面的客户响应,客户将无法发现该/customers/1/accounts
链接。
是否有在响应中提供指向返回资源的“子”集合的超链接的最佳实践?