Должны ли мы использовать одну и ту же модель запросов и ответов? - PullRequest
0 голосов
/ 11 мая 2018

Как хорошая практика написания API, мы должны использовать модель запроса и ответа отдельно или общепринятую?

Ex.

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?

1 Ответ

0 голосов
/ 11 мая 2018

Если ваш формат ответа - json, одно решение использует аннотацию [ScriptIgnore], такую ​​что:

 public abstract class BaseModel
{
    [ScriptIgnore]
    public DateTime CreatedOn { get; set; }
    [ScriptIgnore]
    public int CreatedOn2 { get; set; }

}

, чтобы вы могли использовать свой общий класс, не сериализовав ненужные поля для вашего API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...