2008-09-25 22 views
6

He sido un desarrollador ASP.NET desde hace mucho tiempo en el modelo de formularios web, y estoy usando un nuevo proyecto como una oportunidad para mojarme con ASP.NET MVC.¿Cuál es la mejor manera de implementar una API en ASP.NET usando MVC?

La aplicación necesitará una API para que un grupo de otras aplicaciones pueda comunicarse con ella. Siempre he creado una API usando solo un servicio web estándar antes de esto.

Como nota al margen, dudo un poco en sumergirme de cabeza en el estilo REST de crear API, para esta instancia en particular al menos. Esta aplicación probablemente necesitará un concepto de control de versiones API, y creo que el enfoque REST, donde la API está esencialmente dispersa en todos los controladores del sitio, es un poco engorroso en ese sentido. (Pero no me opongo completamente a esto si hay una buena respuesta para el potencial potencial de control de versiones.)

Entonces, ¿qué dicen ustedes, habitantes de Stack Overflow?

Respuesta

7

Estoy de acuerdo con Kilhoffer. Intente utilizar una clase de contenedor "Fachada" que hereda de un "IFacade". En tu clase de Fachada coloca tu código para consumir tu servicio web. De esta forma, sus controladores simplemente realizarán llamadas a la Fachada. El lado positivo de esto es que puedes intercambiar un "DummyFacade" que implementa la misma interfaz de IFacade que en realidad no habla con el servicio web y simplemente devuelve contenido estático. Le permite realizar algunas pruebas unitarias sin tener que presionar el servicio. Básicamente la misma idea que el patrón Repositorio.

+1

Estoy de acuerdo. Lo recomendaría con todas sus aplicaciones consumidoras de servicios. – Kilhoffer

2

Aún recomendaría una capa de servicio que pueda servir a consumidores del lado del cliente o consumidores del lado del servidor. Posiblemente incluso devolver datos en una variedad de formatos, dependiendo de la persona que llama.

Cuestiones relacionadas