Я использую Web API v2, и у меня есть несколько моделей, для которых мне нужно выполнять операции CRUD. Например, у меня есть модель Allergy
и модель Prescription
. В самом приложении я имею viewmodels, которые могут превратиться в их соответствующие модели, но для простоты просто скажем, что я беру модель прямо в контроллере Web API.Общий API-интерфейс API
Так что-то вроде этого:
public class PrescriptionsController
{
public HttpResponseMessage Put(Prescription model)
{
// saved to the DB
}
... (other CRUD operations)
}
У меня также есть то же самое для Allergy
модели:
public class AllergiesController
{
public HttpResponseMessage Put(Allergy model)
{
// saved to the DB
}
... (other CRUD operations)
}
Обе модели имеют различные свойства, но обрабатываются точно так же - на самом деле у меня есть около 3 других моделей, которые обрабатываются точно так же для каждой операции CRUD. Я ненавижу делать 5 различных конечных точек, которые в основном копируются и вставляются в код.
Так что мой вопрос заключается в следующем:
Могу ли я сделать общий контроллер для обработки всех этих моделей? Что-то вроде MyCommonController<T>
? (но с лучшим именем, конечно!) Может ли веб-API обрабатывать маршрутизацию в этом сценарии? Это даже хорошая идея?
Я думаю, вы можете достичь этого по-другому .. путем маршрутизации. Я не пробовал, но посмотрю. – Guanxi
Кажется возможным. Обсуждение этого вопроса: http://stackoverflow.com/questions/12077361/generic-webapi-controller – Trisk