Página principal » Codificación » Los fundamentos del desarrollo de REST y API RESTful

    Los fundamentos del desarrollo de REST y API RESTful

    Los desarrolladores web están hablando con frecuencia Principios REST y arquitectura de datos REST., Como es un aspecto crucial del desarrollo moderno, pero a veces puede ser increíblemente confuso. REST no es una tecnología en sí misma, sino más bien Un método para crear APIs con ciertos principios organizacionales.. Estos principios son para guiar a los desarrolladores y crear un entorno más universal para procesar solicitudes de API.

    En este post, me gustaría explicar las prácticas de desarrollo RESTful a vista de pájaro. Quiero abordar la qué en lugar de cómo. Aunque tocaré ambas áreas, esta publicación está hecha para cualquier persona que esté en el desarrollo web, pero simplemente no puede comprender el concepto de API REST..

    Descanso para desarrolladores web

    El acrónimo REST significa Transferencia de estado representacional. Esto puede sonar algo confuso, y la entrada de la wiki lo hace aún más confuso. Pero es posible simplificar la terminología..

    REST es solo una serie de Pautas y estilos arquitectónicos utilizados para la transmisión de datos.. Se aplica comúnmente a las aplicaciones web, pero también puede pasar datos al software..

    El acrónimo API significa Application Programming Interface, que son métodos de conectando con otras bibliotecas o aplicaciones. Windows tiene varias API y Twitter también tiene una API web, aunque realizan diferentes tareas con diferentes objetivos.

    Combinándolo todo, las API REST son API que siguen la arquitectura REST.

    ¿Qué es exactamente la arquitectura REST??

    Aquí es donde es difícil establecer detalles. Sin embargo, hay algunas constantes arquitectónicas, tales como:

    • Consistencia en toda la API
    • Existencia sin estado, es decir, no hay sesiones del lado del servidor
    • Uso de Códigos de estado HTTP donde corresponda
    • Uso de Puntos finales de URL con una jerarquía lógica
    • Versiones en la URL en lugar de en los encabezados HTTP

    No hay pautas demasiado específicas como la especificación W3C de HTML5 que podrían generar confusión y un miasma de incertidumbre en torno a la terminología REST.

    Además, la lista anterior No deben ser consideradas reglas duras y rápidas, A pesar de que son verdaderos de las API RESTful más modernas.

    IMAGEN: restful-api-design.readthedocs.io

    REST es un metodología ligera Lo que lo hace perfecto para datos HTTP. Esta es la razón por la cual REST se hizo tan popular en la web, y se considera que es la mejor opción para el desarrollo de API..

    Como lo dice Vinay Sahni, “una API es la interfaz de usuario de un desarrollador.” Todo debe ser fácil de usar y ofrecer una excelente experiencia de usuario. Las APIs REST tienen como objetivo hacer precisamente eso..

    Puntos clave para las API RESTful

    Estos consejos están en el contexto de las API estrictamente para aplicaciones web. Esto significa que HTTP es un requisito, y muchas veces significa que Los datos de la API están alojados en un servidor externo.. Examinemos cómo funcionan las API REST en el lado del usuario de la API.

    El usuario de la API es el desarrollador web que puede crear un script que se conecta a un servidor API externo, luego los datos necesarios se pasan a través de HTTP. El desarrollador puede mostrar los datos en su sitio web. Sin tener acceso personal al servidor externo. (como tirar de los datos de Twitter).

    En general, hay cuatro comandos Acostumbrado a acceder a las API RESTful:

    1. OBTENER para recuperar un objeto
    2. ENVIAR para crear un nuevo objeto
    3. PONER para modificar o reemplazar un objeto
    4. BORRAR para remover un objeto

    Cada uno de estos métodos debe ser pasado con la llamada a la API decirle al servidor qué hacer.

    La gran mayoría de las API web solo permitir OBTENER peticiones para extraer datos de un servidor externo. La autenticación es opcional, pero sin duda es una buena idea al permitir comandos potencialmente dañinos como PONER o BORRAR.

    Sin embargo, no hay muchas API REST que lleguen tan lejos. Considera Pokéapi, que es una base de datos API gratuita de Pokémon. Está abierto al público con un límite de velocidad decente (que limita a los usuarios a un cierto número de solicitudes de API durante un período de tiempo), pero solo permite la OBTENER Método para acceder a los recursos. Esto puede denominarse coloquialmente API de solo consumo.

    Tipos de devolución También son importantes, y deben retener la homogeneidad para todos los recursos. JSON es un tipo de devolución popular con especificaciones en línea que explican las estructuras de datos adecuadas.

    Uso de APIs REST sustantivos para objetos API, y verbos para realizar acciones en esos objetos. La autenticación puede ser parte de esto, la limitación de velocidad también puede ser parte de esto. Pero una API muy simple puede funcionar sin preocuparse demasiado por las limitaciones de los usuarios..

    Acceso a los recursos API

    Las API públicas son típicamente Accesible desde direcciones web directas. Esto significa la estructura de la URL es importante, y debe ser usado solo para solicitudes de API.

    Algunas URL pueden incluir un directorio de prefijo como / v2 / para una versión actualizada 2 de una API anterior. Esto es común para los desarrolladores que no desean depreciar su API 1.x, pero que quieren ofrecer la estructura más nueva..

    Realmente disfruté este post cubriendo estructuras básicas de URL y ejemplos de otros servicios..

    Tenga en cuenta que los puntos finales los datos de retorno cambiarán dramáticamente basado en el Método HTTP. Por ejemplo, OBTENER recupera contenido, mientras ENVIAR Crea nuevo contenido. La solicitud podría apuntar al mismo punto final, pero el resultado podría ser muy diferente.

    IMAGEN: Reddit API Documentation

    Revisar ejemplos en línea puede ayudarlo a entender los conceptos con mayor claridad. Ya vimos el Pokeapi, pero aquí hay otros Ejemplos de API del mundo real para leer

    • API de reddit
    • API de GitHub
    • API de Flickr
    • API de Pinterest

    Construyendo tu propia API

    El proceso de construcción de su propia API no debe tomarse a la ligera, pero tampoco es tan complicado como podría pensar. Toma un comprensión de los patrones de diseño API y las mejores prácticas para construir algo de valor real.

    Cada API debe conectarse a su servidor Para devolver datos de algún tipo. No solo necesita escribir código para hacer eso, sino que también necesita formatear los datos de retorno. Otros requisitos potenciales incluyen autenticación y limitación de velocidad, así que construir un API ciertamente no es para los débiles de corazón.

    Pero echemos un vistazo a algunos principios básicos de la arquitectura API.

    Construir puntos finales

    Un aspecto del desarrollo de API es construir puntos finales. Cuando creando recursos quieres usar sustantivos, no verbos. Esto significa que los datos de API deben devolver a una persona, lugar o cosa, la mayoría de las veces es una cosa con atributos específicos (por ejemplo un tweet y todos sus metadatos).

    Puede ser difícil aprender a nombrar sustantivos, pero este es un aspecto crucial del desarrollo de API. La simplificación es mejor siempre que sea posible.

    Un gran debate es singular contra plural sustantivos. Si estuviera creando una API de Twitter, podría tener primero el grupo de objetos (es decir, tweet) y luego el elemento del objeto en segundo lugar (es decir, la ID de tweet).

     $ / tweet / 15032934882934 $ / tweets / 15032934882934 

    En este caso, yo diría que la forma singular se ve mejor. Esto es cierto especialmente cuando solo se devuelve un recurso. Pero no hay una respuesta 100% correcta documentada, así que haz lo que mejor se adapte a tu proyecto.

    Establecer tipo de retorno

    Otra consideración es datos de tipo de retorno. La mayoría de los usuarios de la web esperan contenido JSON, por lo que es probable que esa sea la mejor opción. XML es otra opción si quieres ofrecer ambos. Sin embargo, JSON es el tipo de retorno API fundamental entre los desarrolladores web..

    Hay mucho más en el desarrollo de API, por lo que recomiendo jugar con API primero. De esta manera, puedes ver cómo otros desarrolladores crean sus API y, con suerte, te familiarizarás con los requisitos típicos..

    Si recién estás comenzando, considera la posibilidad de omitir estos tutoriales para desarrolladores:

    • Sitio de tutorial de API REST
    • Escribiendo una API de REST simple
    • Construyendo un Servicio Web RESTful

    Recursos adicionales

    La mejor manera de aprender el desarrollo de aplicaciones web es a través de la práctica. Merece la pena estudiar la teoría concedida, ya que le permite conversar con los desarrolladores y entender cómo funcionan las cosas..

    Pero un buen lugar para comenzar con el desarrollo de API es conectarse a otras APIs primero. Conozca los conceptos básicos de las conexiones del lado del cliente, y desde allí puede pasar al desarrollo de la API del lado del servidor creando su propia API desde cero..

    Si ese es su objetivo, considere los siguientes recursos para ayudarlo en su viaje.

    Libros

    • Libro de reglas de diseño de API REST
    • API Web RESTful
    • RESTful Web Services Cookbook
    • REST intacto: una guía para diseñar la API perfecta

    Artículos

    • Una guía para principiantes de HTTP y REST
    • Creando una API REST
    • Guía de nombres de recursos RESTful
    • Creando una API REST usando la pila MEAN