azure - services - ¿Cuál es la diferencia entre una aplicación API y una aplicación web?
portal azure (7)
He estado leyendo algunos tutoriales ahora sobre la implementación de aplicaciones web y aplicaciones API en Azure. Sin embargo, todavía estoy un poco inseguro de por qué usarías uno sobre otro.
Puedo crear una nueva solución .NET con controladores API e implementarla como una aplicación web, entonces, ¿por qué necesitaría específicamente una aplicación API? ¿Están optimizados específicamente para la API web ASP.NET, donde las aplicaciones web son para entregar HTML?
Actualizando la respuesta al estado actual de Azure,
App Services ahora reemplaza todos los sabores de aplicaciones móviles, Api y Web como un marco de aplicación único con toda la funcionalidad desplegada para hacer que las cosas sean más accesibles en todos los tipos de aplicaciones. Actualmente, todas las aplicaciones web, móviles y Api se denominan colectivamente servicios de aplicaciones. Todavía ofrecemos al cliente la posibilidad de crear una aplicación móvil y una aplicación web en la galería, pero eso se resuelve básicamente en una aplicación de servicio de aplicaciones.
https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/
Características para el trabajo móvil para aplicaciones web, como Easy Tables y Easy API. Y las funciones para aplicaciones API como API Cors y definiciones de API ahora también funcionan en aplicaciones web. Un cliente puede alojar una sola aplicación web para que actúe como cualquier servicio móvil o una API con todas las características ofrecidas a través de los servicios de la aplicación.
También tenemos un nuevo servicio de vista previa especialmente dirigido a aplicaciones API al ofrecer una experiencia de gestión para sus API. Básicamente, puede controlar la generación de páginas API de prueba, recopilar análisis de ejecución, aceleración y mucho más. Consulte el blog de características para obtener más información sobre las características de administración de API de Azure. Y sí, puede alojar las API como una aplicación de servicio de aplicaciones y conectar las cosas con API Management.
https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/
Aquí mis comentarios:
Aplicación API: utilizada para funcionalidades específicas. Activando esa funcionalidad desde una URL. Se puede usar para usar con GET, POST, PUT, DELETE. Puede recibir parámetros en BODY (Json). Respuesta con código de estado válido (falla, éxito).
APLICACIÓN web: una aplicación implementada con múltiples funciones, por ejemplo, un catálogo para crear, actualizar y eliminar clientes o para crear un ERP completo.
APLICACIÓN de funciones: es muy similar a la aplicación API, utilizada para funcionalidades específicas. Activando esa funcionalidad desde una URL. Se puede usar para usar con GET, POST, PUT, DELETE. Puede recibir parámetros en BODY (Json). Respuesta con código de estado válido (falla, éxito).
En realidad, puede implementar su webapi aspnet en Azure WebApp y un host propio en Roles de trabajo.
En WebApp (antiguos sitios web de Azure), se implementará en IIS, para que pueda aprovechar las características de IIS.
Esto puede depender de lo que intente hacer, pero usaría una API web cuando cree un servicio. ASP.Net Web API es un marco para crear servicios HTTP que pueden ser consumidos por una amplia gama de clientes. Esto le permite construirlo no solo para una aplicación web, sino que lo tiene abierto para conectarse a aplicaciones de Android, aplicaciones IOS, aplicaciones web, aplicaciones de Windows 8, aplicaciones WPF, etc.
Entonces, si necesita un servicio web pero no necesita SOAP, puede usar la API web.
Hay muchas diferencias menores entre la API web y las aplicaciones API, pero las diferencias más notables y clave son
-
Implementación nativa de Swagger: cuando crea una aplicación API en Visual Studio, la referencia de swagger viene de manera predeterminada. Swagger proporciona características amigables para los desarrolladores para que los consumidores de API interactúen con su API a través de la interfaz de usuario de Swagger. Además, las API basadas en Swagger proporcionan la generación de SDK del cliente (cliente basado en .Net y cliente basado en Javascript), lo que hace que sea fácil llamar a las API al igual que las llamadas a métodos normales. Nota: La implementación de Swagger en la API web normal es posible manualmente.
-
Posibilidad de publicar sus aplicaciones API en Azure Market Place. Azure Market Place es el repositorio público para todas las aplicaciones API que se pueden consumir libremente o de forma gratuita.
this video de 15 minutos del Canal 9 ofrece una excelente descripción general de las aplicaciones Api.
Hubo un momento en el que hubo diferencias entre los diferentes tipos de servicios de aplicaciones, pero eso ya no es cierto. La https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/ ahora declara:
La única diferencia entre los tres tipos de aplicaciones (API, web, móvil) es el nombre y el ícono que se usa para ellos en Azure Portal.
Por lo tanto, ya no importa en qué tipo de servicio de aplicación elija implementar (a menos que le importe cómo se ve el icono).
ACTUALIZAR
Las aplicaciones de funciones son ahora la excepción.
La creación de una aplicación de función cambia la interfaz de usuario en el portal.
La aplicación web subyacente, sin embargo, no es diferente.
Establecer una configuración de aplicación llamada
FUNCTIONS_EXTENSION_VERSION
=
~1
convierte cualquier aplicación web en una aplicación de función (menos la interfaz de usuario en el portal).
Para complementar la respuesta de Greg, aquí hay un artículo aún más reciente que describe las diferencias.
Para resumir:
"Las características clave de las aplicaciones API (autenticación, CORS y metadatos API) se han trasladado directamente al Servicio de aplicaciones. Con este cambio, las características están disponibles en aplicaciones web, móviles y API. De hecho, las tres comparten el mismo Microsoft.Web / tipo de recurso de sitios en el Administrador de recursos ".
Y aquí hay otra nota importante:
"Si su API ya está implementada como una aplicación web o aplicación móvil, no tiene que volver a implementar su aplicación para aprovechar las nuevas funciones".