角色
Roles 看起来是一个非常明智的子资源。
假设您希望使用 http 动词列出和删除用户的角色……那么您可以使用两个控制器,一个用于用户,另一个用于角色。您的路线将如下所示:
config.Routes.MapHttpRoute(
name: "UserApi",
routeTemplate: "api/v1/Users/{userId}/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
然后,您的角色控制器将具有以下方法:
public class RolesController : ApiController
{
// GET api/v1/users/1/roles
public IEnumerable<Role> Get(int userId)
{
//
}
// GET api/v1/users/1/roles/1
public IEnumerable<Role> Get(int userId, int id)
{
//
}
}
角色作为用户的部分响应
对于请求使用什么格式和标准:
apigee 在他们的网站上制作了一本免费的电子书,他们在其中提出设计建议和对现有 API 的观察。
他们描述了来自 LinkedIn、Facebook 和 Google 的部分响应示例。这在他们的博客之一和他们的书中都有介绍。
如何使用 WebApi ASP.NET
假设使用 JSON 作为内容类型,那么在ASP.NET Web API 部分响应 Json 序列化之前已经问过一个类似的问题,简而言之,您需要将“?Fields =”之类的查询参数传递给自定义ContractResolver
.