Sto utilizzando Web API v2 e ho una manciata di modelli per i quali devo eseguire operazioni CRUD. Ad esempio, ho un modello Allergy
e un modello Prescription
. Nell'applicazione stessa ho dei modelli che possono essere trasformati nei loro modelli appropriati, ma per semplicità diciamo che prendo il modello direttamente nel controller dell'API Web.Controller API Web generico
Quindi qualcosa di simile:
public class PrescriptionsController
{
public HttpResponseMessage Put(Prescription model)
{
// saved to the DB
}
... (other CRUD operations)
}
ho anche lo stesso per il modello Allergy
:
public class AllergiesController
{
public HttpResponseMessage Put(Allergy model)
{
// saved to the DB
}
... (other CRUD operations)
}
Entrambi i modelli hanno proprietà diverse, ma vengono gestiti esattamente nello stesso modo - infatti ho circa altri 3 modelli che vengono gestiti esattamente allo stesso modo per ogni operazione CRUD. Detesto avere 5 diversi endpoint che sono fondamentalmente copiati e incollati.
Quindi la mia domanda è questa:
Posso fare un controller generico per gestire tutti questi modelli? Qualcosa come MyCommonController<T>
? (ma con un nome migliore, ovviamente!) L'API Web può gestire il routing in tale scenario? E 'anche una buona idea?
Penso che si possa ottenere questo in modo diverso .. tramite il routing. Non ho provato, ma vedrò. – Guanxi
Sembra possibile. Ecco una discussione a riguardo: http://stackoverflow.com/questions/12077361/generic-webapi-controller – Trisk