Mejores prácticas para la API Rest
- Andrés Cruz
En estos días, las API están en todas partes: desde pedir pizza en línea hasta pagar facturas, reservar boletos, escuchar música y más, se han convertido en un estándar de la industria para crear aplicaciones. En resumen, mantienen al mundo conectado.
¿Qué es API?
API significa Interfaz de programación de aplicaciones.
Proporciona comunicación entre el proveedor y el cliente. Es un tipo de interfaz de software que ofrece un servicio a otras piezas de software. Un documento o estándar que describe cómo construir o usar una conexión o interfaz de este tipo se denomina especificación API. Se dice que un sistema informático que cumple con este estándar implementa o expone una API. El término API puede referirse tanto a la especificación como a la implementación.
En esta entrada hablamos más en detalle sobre API, API REST y API RESTful
¿Qué es la API Rest?
A diferencia de los servicios web basados en SOAP, no existe un estándar "oficial" para las API web RESTful. Esto se debe a que REST es un estilo arquitectónico, mientras que SOAP es un protocolo. REST no es un estándar en sí mismo, pero las implementaciones RESTful hacen uso de estándares, como HTTP, URI, JSON y XML.
El objetivo de REST es aumentar el rendimiento, la escalabilidad, la simplicidad, la modificabilidad, la visibilidad, la portabilidad y la confiabilidad. Esto se logra siguiendo los principios REST, como una arquitectura cliente-servidor, ausencia de estado, almacenamiento en caché, uso de un sistema en capas, soporte para código bajo demanda y uso de una interfaz uniforme.
Mejores prácticas para la API Rest
Resaltaré las mejores prácticas tanto para los desarrolladores como para los evaluadores al desarrollar y probar la API Rest.
Nombrado para los recursos API
Debe referirse a los nombres de los puntos finales usando sustantivos y su tipo de acción por el método.
Si usa verbos con sustantivos como 'CreateUser', 'DeleteUser' y 'GetUser', creará muchos puntos finales.
Supongamos que tiene el punto final '/usuarios', entonces debe especificarlo así:
Para crear un usuario: /usuarios con petición de tipo POST
Para obtener detalles de usuario: /usuarios con petición de tipo GET
Siempre debe otorgar la cantidad mínima de permisos para las funciones que van a ser consumidas. Por ejemplo, si vas a usar funciones para recibir o obtener información, no agregues ningún otro método PUT o POST de nivel de API innecesario para pensar en el futuro.
1 Códigos de estado HTTP estándar
Como sabemos, la API REST se basa en el protocolo HTTP. Siempre es mejor usar un estado de respuesta estándar unificado para que todos los miembros del equipo lo entiendan.
2. Mensajes de respuesta adecuados y manejo de errores
Se trata de dar el código de estado HTTP adecuado a los usuarios. Si el error está en el lado del cliente, siempre debe estar en la clase 4xx. Si el error está en el lado del servidor, siempre debe estar en la clase 5xx.
Por ejemplo, si envía una URL de solicitud que no existe en el servidor, siempre debería devolver un 404 con un mensaje de registro adecuado.
3. Teniendo en cuenta los aspectos de seguridad
Siempre es beneficioso limitar la cantidad de solicitudes de un solo host para proteger el servidor de los ataques DDoS. Utilice siempre una autorización segura, un mecanismo de autenticación y un protocolo HTTPS. Si está utilizando un token JWT en su proyecto, debe asegurarse de que no contenga datos confidenciales del cliente.
4. Documentación
Es increíblemente beneficioso tener documentación API para su proyecto. Para ser un ingeniero efectivo, debe asegurarse de que todo esté documentado de la manera adecuada. Como práctica recomendada, Swagger y Slate se utilizan generalmente para la documentación de la API.
Artículo original: https://medium.com/chegg/best-practices-for-rest-api-df7417ea07e5
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter