Sto giocando con il nuovo wep api in mvc 4 beta e aggiungendo alcuni nuovi controller api al mio sito mvc esistente. Il problema è che non posso nominare i controller web API come i miei controller esistenti. Per ora ho dato loro nomi come ProductApiController ma non è molto riposante. Qual è una buona strategia per la denominazione di questi nuovi controller quando li si aggiunge a un sito mvc esistente?Mixer controller e controller di sito API
33
A
risposta
53
Problema è impossibile denominare i controller di Web api come i controller esistenti.
Si potrebbe avere i controller API con lo stesso nome dei controller esistenti. Basta metterli in uno spazio dei nomi diverso per rendere felice il compilatore.
Esempio:
namespace MyAppName.Controllers
{
public class ProductsController: Controller
{
public ActionResult Index()
{
var products = productsRepository.GetProducts();
return View(products);
}
}
}
e il controllore API:
namespace MyAppName.Controllers.Api
{
public class ProductsController: ApiController
{
public IEnumerable<Product> Get()
{
return productsRepository.GetProducts();
}
}
}
e quindi si ha: /products
e /api/products
rispettivamente con cui lavorare.
Quindi posso aggiungere una sottocartella api nella cartella controller e aggiungere i controller api lì? – terjetyl
@TT., Sì, è una possibilità. –
O forse un'Area per il web api è più appropriata? – terjetyl