Ejemplo y conceptos básicos de la API web | Por @quadiontech
¿Sabes qué es una API web y cómo se construye? El propósito de esta publicación es que conozcas todos los conceptos necesarios para comprender completamente cómo funciona. Además, al final de esta publicación, le mostraré cómo crear un proyecto de API web y lo fácil que es configurarlo.
¿Qué es una ASP.NET WEB-API y para qué sirve?
- ASP.NET Web API es un marco que facilita la creación de servicios HTTP que lleguen a una amplia gama de clientes, incluidos navegadores y dispositivos móviles.
- Está construido en asp.net
- Se liberó con MVC4, aunque no es necesario usar MVC4, se puede usar en formularios web por ejemplo.
¿Qué significa HTTP?
HTTP significa Protocolo de transferencia de hipertexto . Es un protocolo de aplicación para sistemas de información hipermedia distribuidos y colaborativos que transfieren datos a través de la web.
HTTP se basa en operaciones de solicitud-respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar que contiene el estado de la operación y un resultado.
¿Qué es una API?
API significa Interfaz de programación de aplicaciones y es un conjunto de funciones y procedimientos que permiten la creación de aplicaciones que acceden a las características o datos de un sistema operativo, aplicación u otros servicios.
¿Qué es REST?
REST significa Transferencia de estado representacional . Es un tipo de arquitectura de software para sistemas distribuidos como www, donde, prácticamente en todos los casos, se utiliza el protocolo HTTP.
Restricciones de REST
El resto del patrón arquitectónico especifica un conjunto de restricciones a las que debe adherirse el sistema. Estas restricciones son:
- Cliente-Servidor : el cliente envía una solicitud y el servidor envía una respuesta. Esta separación de preocupaciones respalda la evolución independiente de la lógica del cliente y la lógica del lado del servidor.
- Sin estado: la comunicación entre el cliente y el servidor debe ser sin estado entre solicitudes. Esto significa que no debemos almacenar en el servidor nada relacionado con el cliente. La solicitud del cliente debe contener toda la información necesaria para que el servidor procese esa solicitud. Esto garantiza que el servidor pueda tratar cada solicitud de forma independiente.
- Cacheable: los datos proporcionados por el servidor que no cambian con tanta frecuencia se pueden almacenar en caché. Debemos informar al cliente por cuánto tiempo estos datos son válidos para que el cliente no tenga que volver al servidor para obtener los mismos datos una y otra vez. El almacenamiento en caché evita el procesamiento innecesario y aumenta el rendimiento del sistema.
- Interfaz uniforme: esta restricción asegura que
1. Los recursos individuales se identifiquen en las solicitudes.
2. Cuando un cliente tiene una representación de un recurso, tiene suficiente información para modificar o eliminar el recurso
3. Mensaje autodescriptivo: cada mensaje tiene suficiente información para describir cómo procesar el mensaje. Por ejemplo, qué analizador invocar.
4. Hipermedia como motor del estado de la aplicación: después de haber accedido a un URI inicial para el resto de la aplicación, un cliente Rest debería poder utilizar enlaces proporcionados por el servidor de forma dinámica para descubrir todas las acciones y recursos disponibles que necesita. - Sistema en capas: permite utilizar la arquitectura del sistema en capas, por ejemplo, puede implementar las API en un servidor y almacenar datos en otro servidor.
- Código bajo demanda (opcional): permite devolver código ejecutable
Cada solicitud HTTP tiene:
- URI : significa Identificador Uniforme de Recursos. Es una cadena de caracteres diseñada para la identificación inequívoca del recurso y la extensibilidad a través del esquema URI.
- Verbo Http : podría ser POST, GET, PUT, DELETE. Cada uno se usa para 1 de las operaciones crudas como puede ver en la cuadrícula de arriba.
- Http Header permite que el cliente y el servidor pasen información adicional con la solicitud o la respuesta. Un encabezado HTTP consta de su nombre, que no distingue entre mayúsculas y minúsculas, seguido de dos puntos ':' y luego de su valor.
- Cuerpo Http: contiene los datos a enviar al servidor
Cada respuesta HTTP contiene:
- Código de estado de respuesta: proporcionar al cliente, el estado de la solicitud. Los once más comunes son 200 para ok y 404 para un recurso no encontrado. Si desea ver una lista completa de los códigos de estado y lo que significan, haga clic aquí . Pero como referencia, debe saber que los códigos de estado se agrupan en 5 clases:
1. Respuestas informativas (100–199)
2. Respuestas exitosas (200–299)
3. Redireccionamientos (300–399)
4. Errores del cliente (400– 499)
5. Errores del servidor (500–599) - Cuerpo de la respuesta: contiene los datos enviados como respuesta desde el servidor.
¿Cómo funciona WEB-API?
En ASP.NET Web API, un controlador es una clase que maneja solicitudes HTTP. Los métodos públicos del controlador se denominan métodos de acción o simplemente acciones . Cuando el marco de la API web recibe una solicitud HTTP, mediante el enrutamiento detecta en qué controlador se encuentra la acción que debe invocarse.
Enrutamiento
Es cómo la webAPI hace coincidir un URI con una acción.
- Enrutamiento basado en convenciones: para determinar qué acción invocar, el marco utiliza una tabla de enrutamiento que se crea en función de las plantillas de ruta definidas por el usuario. Cuando el marco recibe una solicitud, compara el URI con las plantillas. Aunque este tipo de enrutamiento tiene algunas ventajas, a veces dificulta el soporte de ciertos patrones de URI. Por lo tanto, comúnmente se combina con el enrutamiento de atributos.
- Enrutamiento de atributos: le permite definir una ruta agregando un atributo a la acción del controlador.
Autora: Yanina Gatero, Quadion https://blog.quadiontech.com/web-api-basic-concepts-and-example-f1d7056a8515
Fuentes referencias:
- https://en.wikipedia.org/wiki/Uniform_Resource_Identifier
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
- https://app.pluralsight.com/library/courses/aspnetwebapi-odata/table-of-contents
- https://en.wikipedia.org/wiki/Representational_state_transfer
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
- https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2
Te recomendamos también los siguientes artículos
- Para el éxito de la seguridad API, las empresas necesitan herramientas especiales.
- Para el éxito de la seguridad API, las empresas necesitan herramientas especiales.
- Arval Technology: Seguridad API simple y completa.
- APIs: la nueva forma de generar dinero 💵 para las PYMEs.
- Aplicaciones financieras amenazadas por vulnerabilidades de API.
- ¿Por qué es importante la seguridad de las API hoy en día?
- Ejemplo y conceptos básicos de la API web.
No hay comentarios.