我正在使用Visual Studio WebAPI解决方案模板构建我的第一个Restful Web服务。对于我的模型,我有一个Customer类,其中包含以下字段:
根据我们的要求,我需要以下方法并返回数据:
因此,我构建了一个名为CustomerController的Controller,它包含这些方法,并在所有4种方法中返回一个Customer对象。使用此方法,GetCustomerFromID返回一个Customer对象,其中所有字段都包含值。但是,GetCustomerEmailFromID返回的Customer对象只有一个字段值,其余为NULL。
这种方法是否正常,或者是否有更好的方法/最佳实践,我只返回每种方法所需的字段?
谢谢
答案 0 :(得分:0)
你的方式感觉很重 - 因为你有一堆端点用于同一资源的切片。
雅虎使用他们所谓的观点:
资源可能会提供相同数据的不同视图。要指定 在视图中,将视图查询参数附加到URI。例如,到 检索GUID 4467用户的联系人的微小视图,调用 以下URI上的HTTP GET:
https://social.yahooapis.com/v1/user/4467/contacts?view=tinyusercard
请注意,view参数仅适用于singleton(不是 收集)资源。
另一个很好的资源Apigee比较了几个大的提供者(http://apigee.com/about/blog/technology/restful-api-design-can-your-api-give-developers-just-information-they-need)
/people:(id,first-name,last-name,industry)
/joe.smith/friends?fields=id,name,picture
/dogs?fields=name,color,location
我更喜欢这样的API。
此处提供进一步的帮助:How to do partial responses using ASP.Net Web Api 2