Cómo consumir automáticamente APIs con React

Rate this content
Bookmark

En esta charla, presentaré a la audiencia el potencial de OpenAPI para simplificar y mejorar el proceso de desarrollo para las aplicaciones React. Demostraré cómo OpenAPI puede ser aprovechado para autogenerar automáticamente APIs REST, optimizando la consumición de datos dentro de los proyectos React. Con un enfoque agudo en la eficiencia y la fiabilidad, los asistentes obtendrán valiosos conocimientos sobre la implementación de pruebas automatizadas para garantizar la robustez y la calidad en sus aplicaciones.

This talk has been presented at React Day Berlin 2023, check out the latest edition of this React Conference.

FAQ

Proxima Analytics es una plataforma de análisis de código abierto ética.

Teodor utiliza Swagger y OpenAPI para documentar APIs RESTful.

Teodor utiliza React para el frontend y Fastify como servidor para desarrollar la aplicación de menú de pizza.

El módulo Swagger de Fastify se utiliza para documentar la API y escribir la salida en el sistema de archivos del servidor.

React se utiliza conjuntamente con herramientas como Orval para generar SDKs que consumen la especificación OpenAPI, facilitando la integración y el consumo de APIs en la interfaz de usuario.

Orval es una herramienta de código abierto que genera clientes SDK a partir de especificaciones OpenAPI. Teodor lo utiliza para generar automáticamente el código necesario para integrar la API en el frontend desarrollado con React.

Teodor hace énfasis en la seguridad de tipo como un requisito imprescindible en su proyecto, aunque no especifica detalladamente las metodologías utilizadas en el texto proporcionado.

Teodor utiliza simulacros generados por el trabajador de servicio de simulacro, lo que facilita la prueba de las APIs durante el desarrollo.

El código está disponible públicamente en el perfil de GitHub de Teodor.

Theodore Vorillas
Theodore Vorillas
7 min
08 Dec, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy cubre los desafíos de desarrollar APIs y las herramientas disponibles para simplificar el proceso. También demuestra la construcción de una aplicación de menú de pizza utilizando React y Fastify, con documentación y generación de SDK utilizando Swagger y OpenAPI. Orval se introduce como una herramienta para generar mutaciones, pruebas con mocks generados por trabajadores de servicio simulado, y utilizando Zod para la validación. Admite múltiples lenguajes y marcos, y permite consumir APIs de varios recursos. El SDK se puede rastrear utilizando control de versiones, y las especificaciones de Open API pueden generar Swagger UI y Redux doc asserts.

1. Introducción a las APIs y sus Desafíos

Short description:

Hoy, voy a hablar sobre los desafíos de desarrollar APIs y las herramientas disponibles para facilitarlo.

OK, así que solo tenemos cinco minutos, así que voy a llevarlo como si lo hubiera robado. Mi nombre es Teodor, soy un ingeniero de software con sede en Atenas, Grecia, trabajo para Proxima Analytics, que es una plataforma de análisis de código abierto ética. Y hoy voy a hacer otra charla sobre APIs. Y puedo decirte que durante mi carrera he desarrollado tantas APIs. Y realmente puedo decirte que desarrollar APIs es bastante difícil. Tienes que pensar en cambios de código, documentación, romper cosas, seguridad de tipo, como consumir desde diferentes clientes o diferentes aplicaciones y así sucesivamente. Y hay herramientas por ahí, como GraphQL Cogent, ERPC, lo que sea, que pueden generar SDKs de forma semi-automática para consumirlos en tus aplicaciones. Pero eso puede ser un poco complicado y puede estar realmente acoplado con el marco que estamos usando actualmente.

2. Construyendo una Sencilla Aplicación de Menú de Pizza

Short description:

Hoy, vamos a construir una sencilla aplicación de menú de pizza utilizando React y Fastify. Usaremos Swagger y OpenAPI para documentar nuestras APIs y generar SDKs. La interfaz de usuario de Fastify React proporciona documentación completa y capacidades de prueba. Para generar nuestro SDK, utilizaremos Orval, que admite diferentes marcos y bibliotecas de búsqueda. Podemos listar y crear elementos del menú de pizza fácilmente.

Así que hoy vamos a intentar algo sencillo, en menos de cinco minutos, vamos a intentar construir una sencilla aplicación de menú de pizza. Vamos a utilizar React y Fastify, React obviamente, y Fastify como servidor. Y como siempre, la seguridad de tipo es imprescindible. Así que vamos a empezar rápidamente con esto.

Tenemos una configuración realmente básica sobre nuestro servidor, tenemos un tipo que identifica qué es realmente una pizza, como con un ID y un nombre, y luego podemos exponer dos puntos finales, uno para listar todas las pizzas en el menú, y otro para crear un nuevo elemento de pizza en el menú. Y para documentar nuestra API y empezar a generar nuestros SDKs, vamos a utilizar dos herramientas.

La primera se llama Swagger, que es una forma de documentar APIs RESTful, y encima de eso vamos a utilizar OpenAPI, que es en realidad una especificación para hacerlo. Trabajan con diferentes marcos, diferentes lenguajes, tienen demasiados clientes que también puedes consumir. Y para hacerlo, vamos a instalar dos paquetes para nuestro servidor Fastify, el primero es el módulo Swagger de Fastify, y el otro es la interfaz de usuario que queremos traer arriba.

Para iniciar estos dos módulos, la configuración es bastante básica, así que primero necesitamos incluir los módulos en nuestro servidor, añadir algunas especificaciones sobre las APIs, como una descripción, y luego en la última línea vamos a tomar la salida del módulo Swagger y escribirla en nuestro sistema de archivos. Así que vamos a empezar a describir nuestras APIs.

Primero, tenemos un ID, que es único en toda nuestra base de código, y luego vamos a utilizar etiquetas. Podemos usar etiquetas para separar diferentes recursos, APIs, y así sucesivamente. Y para describir nuestra API, tenemos que describir realmente sólo la respuesta, porque no tenemos parámetros ni parámetros de consulta, y así sucesivamente. Así que nuestra respuesta es un objeto, y estamos devolviendo una matriz de dos elementos de menú de pizza, que tienen un ID y un nombre también. Y por último, pero no menos importante, tenemos que incluir el esquema en nuestra ruta en nuestro servidor Fastify.

De manera similar, vamos a hacer lo mismo para el punto final de creación, pero esta vez tenemos que proporcionar realmente un parámetro, que es el nombre del elemento de pizza. De manera similar, la respuesta devuelve ese ID al cliente. De la misma manera, vamos a adjuntar el esquema a nuestra ruta.

Una vez que tenemos todo listo, esta es la interfaz de usuario de Fastify React, donde puedes tener la completa documentación sobre cada punto final. Realmente tienes valores predeterminados inteligentes allí. Puedes probar la API en el navegador, y así sucesivamente. Pero podrías estar preguntándote dónde entra React en esa ecuación, ¿verdad?

Para generar nuestro SDK, vamos a utilizar Orval. Orval es una herramienta de código abierto que toma la especificación OpenAVI y genera el cliente SDK. Funciona con diferentes marcos como Svelte, Vue, con diferentes bibliotecas de búsqueda como SWR, y React Query también. Tenemos que instalar, globalmente o dentro de nuestro proyecto, el SDK de Orval, y luego vamos a ejecutar el CLI de Orval utilizando la especificación OpenAVI como entrada, y luego apuntando a donde queremos que se genere nuestro cliente.

Para listar... Y este es un componente bastante simple que realmente lista todo, lista todos los elementos del menú de pizza. Como puedes ver, la primera línea es realmente lo que generó Orval. Y de manera similar, podemos crear un formulario realmente simple.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Despídete de tus esquemas de API con tRPC
React Day Berlin 2022React Day Berlin 2022
29 min
Despídete de tus esquemas de API con tRPC
Today's Talk introduces TRPC, a library that eliminates the need for code generation and provides type safety and better collaboration between front-end and back-end. TRPC is demonstrated in a Next JS application integrated with Prisma, allowing for easy implementation and interaction with the database. The library allows for seamless usage in the client, with automatic procedure renaming and the ability to call methods without generating types. TRPC's client-server interaction is based on HTTP requests and allows for easy debugging and tracing. The library also provides runtime type check and validation using Zod.
Deja paso a los resolvers: un nuevo enfoque para la ejecución de GraphQL
GraphQL Galaxy 2022GraphQL Galaxy 2022
16 min
Deja paso a los resolvers: un nuevo enfoque para la ejecución de GraphQL
GraphQL has made a huge impact in the way we build client applications, websites, and mobile apps. Despite the dominance of resolvers, the GraphQL specification does not mandate their use. Introducing Graphast, a new project that compiles GraphQL operations into execution and output plans, providing advanced optimizations. In GraphFast, instead of resolvers, we have plan resolvers that deal with future data. Graphfast plan resolvers are short and efficient, supporting all features of modern GraphQL.
Manejo de Cambios Significativos en GraphQL
GraphQL Galaxy 2022GraphQL Galaxy 2022
22 min
Manejo de Cambios Significativos en GraphQL
Top Content
This Talk discusses handling breaking changes in a GraphQL schema, including the use of the deprecated directive to tag fields that should no longer be used. It also covers the process of deploying GraphQL APIs and mobile apps, highlighting the challenges of mobile app release adoption. The Talk emphasizes the importance of making safe upgrades in mobile apps and provides strategies for detecting and handling breaking changes, such as using TypeScript and GraphQL Inspector. Overall, the Talk emphasizes the need to minimize user impact when introducing breaking changes in GraphQL schemas.
Patrones avanzados para la gestión de API en aplicaciones React a gran escala
React Advanced Conference 2021React Advanced Conference 2021
20 min
Patrones avanzados para la gestión de API en aplicaciones React a gran escala
Top Content
This Talk covers advanced patterns for API management in large-scale React applications. It introduces the concept of an API layer to manage API requests in a more organized and maintainable way. The benefits of using an API layer include improved maintainability, scalability, flexibility, and code reusability. The Talk also explores how to handle API states and statuses in React, and provides examples of canceling requests with Axios and React Query. Additionally, it explains how to use the API layer with React Query for simplified API management.
Manejo Seguro de Datos Dinámicos con TypeScript
Node Congress 2021Node Congress 2021
29 min
Manejo Seguro de Datos Dinámicos con TypeScript
Top Content
This Talk discusses the safe handling of dynamic data with TypeScript using JSON Schema and TypeBox. Fastify, a web framework, allows developers to validate incoming data using JSON schema, providing type safety and error handling. TypeBox is a powerful library that allows developers to define JSON schemas and derive static types in TypeScript. The combination of JSON schema, TypeBox, and Fastify provides powerful tools for type safety and validation of dynamic data.
Las APIs están evolucionando. Otra vez.
JSNation 2023JSNation 2023
28 min
Las APIs están evolucionando. Otra vez.
Matteo Collina
Luca Maraschi
2 authors
Technology is a spiral, with foundational ideas resurfacing. Java revolutionized enterprise applications. REST and JSON simplified building APIs and websites. Node.js enabled fast and custom development, leading to the microservices revolution. Platformatic aims to fill the gap in building, managing, and scaling microservices painlessly.

Workshops on related topic

Práctica con AG Grid's React Data Grid
React Summit 2022React Summit 2022
147 min
Práctica con AG Grid's React Data Grid
WorkshopFree
Sean Landsman
Sean Landsman
Comienza con AG Grid React Data Grid con un tutorial práctico del equipo principal que te guiará a través de los pasos para crear tu primera cuadrícula, incluyendo cómo configurar la cuadrícula con propiedades simples y componentes personalizados. La edición comunitaria de AG Grid es completamente gratuita para usar en aplicaciones comerciales, por lo que aprenderás una herramienta poderosa que puedes agregar de inmediato a tus proyectos. También descubrirás cómo cargar datos en la cuadrícula y diferentes formas de agregar representación personalizada a la cuadrícula. Al final del masterclass, habrás creado una cuadrícula de datos AG Grid React y la habrás personalizado con componentes funcionales de React.- Comenzando e instalando AG Grid- Configurando ordenamiento, filtrado, paginación- Cargando datos en la cuadrícula- La API de la cuadrícula- Usando hooks y componentes funcionales con AG Grid- Capacidades de la edición comunitaria gratuita de AG Grid- Personalizando la cuadrícula con componentes de React
Construyendo APIs GraphQL sobre Ethereum con The Graph
GraphQL Galaxy 2021GraphQL Galaxy 2021
48 min
Construyendo APIs GraphQL sobre Ethereum con The Graph
WorkshopFree
Nader Dabit
Nader Dabit
The Graph es un protocolo de indexación para consultar redes como Ethereum, IPFS y otras blockchains. Cualquiera puede construir y publicar APIs abiertas, llamadas subgrafos, para hacer que los datos sean fácilmente accesibles.

En este masterclass aprenderás cómo construir un subgrafo que indexa datos de blockchain de NFT del contrato inteligente Foundation. Desplegaremos la API y aprenderemos cómo realizar consultas para recuperar datos utilizando diferentes tipos de patrones de acceso a datos, implementando filtros y ordenamiento.

Al final del masterclass, deberías entender cómo construir y desplegar APIs de alto rendimiento en The Graph para indexar datos de cualquier contrato inteligente desplegado en Ethereum.
Flujos de base de datos y desarrollo de API con Prisma
Node Congress 2022Node Congress 2022
98 min
Flujos de base de datos y desarrollo de API con Prisma
WorkshopFree
Nikolas Burk
Nikolas Burk
Prisma es un ORM de código abierto para Node.js y TypeScript. En esta masterclass, aprenderás los flujos de trabajo fundamentales de Prisma para modelar datos, realizar migraciones de base de datos y consultar la base de datos para leer y escribir datos. También aprenderás cómo Prisma se integra en tu stack de aplicaciones, construyendo una API REST y una API GraphQL desde cero utilizando SQLite como base de datos.
Tabla de contenidos:
- Configuración de Prisma, modelado de datos y migraciones- Explorando Prisma Client para consultar la base de datos- Construyendo rutas de API REST con Express- Construyendo una API GraphQL con Apollo Server
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
React Advanced Conference 2022React Advanced Conference 2022
206 min
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
Workshop
Thomas Findlay
Thomas Findlay
Con el surgimiento de frameworks, como React, Vue o Angular, la forma en que se construyen los sitios web ha cambiado a lo largo de los años. Las aplicaciones modernas pueden ser muy dinámicas y realizar múltiples solicitudes de API para poblar un sitio web con contenido actualizado o enviar nuevos datos a un servidor. Sin embargo, este cambio de paradigma ha introducido nuevos problemas con los que los desarrolladores deben lidiar. Cuando una solicitud de API está pendiente, tiene éxito o falla, el usuario debe recibir una retroalimentación significativa. Otros problemas pueden incluir el almacenamiento en caché de datos de API o la sincronización del estado del cliente con el servidor. Todos estos problemas requieren soluciones que deben ser codificadas, pero pueden volverse rápidamente inmanejables y dar como resultado una base de código difícil de ampliar y mantener. En este masterclass, cubriremos cómo manejar las solicitudes de API, los estados de API y la cancelación de solicitudes mediante la implementación de una Capa de API y combinándola con React-Query.
Prerrequisitos: Para aprovechar al máximo este masterclass, debes estar familiarizado con React y Hooks, como useState, useEffect, etc. Si deseas codificar junto con nosotros, asegúrate de tener Git, un editor de código, Node y npm instalados en tu máquina.