Pregunta

Estoy desarrollando una aplicación ASP.NET MVC 3. Necesito esta aplicación para utilizar una API que también necesito implementar. La API debe estar disponible en acciones del controlador MVC ASP.NET y AJAX. Ahora es bastante fácil hacer una API usando ASP.NET MVC, pero ¿es posible usar esto desde otras acciones de sitio web de ASP.NET MVC? Supongo que el WCF es bastante fácil de usar, ya que es solo una referencia de servicio.

Otros usuarios de la API podrían ser Windows Phone y iPhone.

Actualizar:

Muchos solo ve la API como un lugar donde consume datos, pero ¿qué pasa con la parte donde desea ejecutar comandos o hacer cosas, como agregar cliente o cambiar foo?

¿Fue útil?

Solución

Es posible que desee consultar nuestra nueva API web de WCF que se anunció en PDC. Recientemente lanzamos una gran actualización. WCF Web API está diseñada específicamente para permitirle exponer API a una gama de clientes de manera pura HTTP. Es liviano, ofrece una buena historia de configuración (sin archivos de configuración) y también es mucho más fácil de probar.

Puedes descargar los bits en wcf.codeplex.com. Incluye varias muestras, y también hay un conjunto de Nuget Paquetes para comenzar. Buscar webapi.all en Nuget.

Otros consejos

La forma en que me gusta hacer esto es con acciones de controlador RESTful. Puede devolver JSON y usar sus llamadas con JavaScript en su propio sitio. Otros sitios web seguramente entenderían JSON, por lo que podrían consumir su API con bastante facilidad. Esto es mucho más fácil de escribir y probar que una capa de WCF pesada.

Consulte esta pregunta para obtener algunos marcos de descanso de ejemplo para MVC:

ASP.NET MVC REST Frameworks

Una de las formas más nuevas de realizar alimentos de datos es usar Odata. Scott Hanselman tiene una gran introducción en Creación de una API ODATA para StackOverflow que incluye XML y JSON en 30 minutos.

Le permite incluso arrojar consultas de Linq a sus URL para recuperar exactamente los datos que necesita.

WCF JSON Binding fue realmente terrible la última vez que lo usé. WCF también viene con todo tipo de reglas locas sobre transmisiones y cómo tienes que usar los atributos [MessageBody] para todo.

Fue una verdadera pita para mí.


Sabía que había respondido algo como esto antes:

¿Cuál es la mejor manera de implementar una arquitectura RESTful en .NET hoy?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top