我有一个Web API请求一个GET方法可以返回基于相同参数的不同结果(Dtos)示例:
GET - http://localhost/books/searchAll?Detailed=true `
Returns DTO 1 ["Id":1,"Date": 01/01/2014]
GET - http://localhost/books/searchAll?Detailed=false `
Returns DTO 2 ["Id":1]
处理这种情况的最佳方法是什么:
我应该使用一个包含两个不同结果列表的Dto创建一个http响应:
Public Class ResultList
{
Public List<Dto> DtoList1{get;set;}
Public List<Dto2> DtoList2{get;set;}
}
或只有一个返回动态列表的dto列表
Public Class ResultList
{
Public List<dynamic> DtoList{get;set;}
}
或其他解决方案?
此致
答案 0 :(得分:1)
如果你要返回两个不同的资源(或类或类型),我肯定会选择两种不同的方法,但它们也可以提供两种不同的URL,比如说。搜索和搜索详细信息。
如果你返回相同的资源,但一次完整,另一部分,那么我将有一个方法,使用你建议的详细参数,但我会返回相同的dto类有时所有的属性机智值和其他只有它的最小属性值。毕竟你返回一个json对象,它可以有动态属性而没有任何问题。
这就是我的想法。