作为一个优秀的API编写实践,我们应该使用单独或共同的请求和响应模型吗?
实施例。
public abstract class BaseModel
{
public DateTime CreatedOn {get;set;}
public int CreatedOn {get;set;}
}
public class UserModel : BaseModel
{
public int UserId {get;set;}
public string UserName{get;set;}
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
string _name;
public string Name
{
get { return string.Format("{0}{1}{2}", FirstName, MiddleName, LastName) }
set { _name=value; }
}
}
现在,如果我正在创建API
CreateUser(UserModel uModel)
{
}
GetUsers()
{
// Here I'm returning all users from the system, so each user's object will contains CreatedOn and CreatedBy, which I don't require in the API response
}
那么我们应该创建多个UserModel
吗?
答案 0 :(得分:0)
如果您的响应格式是json,则一种解决方案是使用[ScriptIgnore]注释,以便:
public abstract class BaseModel
{
[ScriptIgnore]
public DateTime CreatedOn { get; set; }
[ScriptIgnore]
public int CreatedOn2 { get; set; }
}
这样您就可以使用公共类而不为api序列化不需要的字段。