В настоящее время у меня есть веб-сайт MVC, и я собираюсь создать API для предоставления ограниченной функциональности мобильному клиенту. У моего сайта есть логический слой, где у меня есть DTO, которые я использую для отображения информации на сайте.
Следует ли при создании API открывать клиенту эти же DTO или создавать DTO, специально предназначенные для использования в API? Я буду создавать новые контроллеры и методы действий, поэтому может иметь смысл также создавать специфичные для API DTO.
Мне кажется, что создание API вынуждает вас заключить договор с мобильным клиентом, чтобы сделать изменения было сложнее. Наличие отдельных DTO позволяет свободно вносить изменения в DTO, которые используются только на сайте.
Однако недостатком является то, что я в основном дублирую свой код, поскольку DTO будут в основном одинаковыми.
Мысли