Mais ServiceStack solicita consultoria sobre DTO
Este é um acompanhamento sobre:
Design do DTO da solicitação do ServiceStack
Na pergunta acima, o design era estritamente referente às operações de leitura. E as operações de gravação? Digamos que desejássemos adicionar operações para criar um novo limite de reserva. Reutilizar o substantivo seria apropriado aqui?
[Route("/bookinglimits/","POST")]
public class CreateBookingLimit : IReturn<BookingLimit>
{
BookingLimit newBookingLimit
}
-OU- Seria melhor design?
[Route("/bookinglimits/","POST")]
public class CreateBookingLimit : IReturn<BookingLimit>
{
public int ShiftId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int Limit { get; set; } }
}
Além disso, se quisermos adicionar edição - devemos inserir e editar compartilhar os mesmos modelos e adicionar o ID?
[Route("/bookinglimits/","POST")]
[Route("/bookinglimits/{Id}/","PUT")]
public class CreateBookingLimit : IReturn<BookingLimit>
{
public int Id { get; set; }
public int ShiftId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int Limit { get; set; } }
}
Estou tentando entender quando faz mais sentido reutilizar POCOs e quando faz mais sentido separar intenções.