Documentación Interactiva con API Platform y Swagger UI

Clase 6 de 17Curso de Symfony 6: Creación de API REST

Resumen

¿Qué es la documentación interactiva en la API?

La documentación interactiva es una parte fundamental de una API bien estructurada. Con ella, podemos ver y probar diferentes aspectos de nuestra API de una manera visual y práctica. Para entender mejor cómo funciona, exploraremos algunos puntos clave, como el uso de Swagger UI y cómo se presenta la información en formatos JSON y JSON-LD.

¿Cómo funciona Swagger UI?

Swagger UI es una herramienta que nos permite visualizar y probar las respuestas de una API que sigue el estándar OpenAPI 3.0.0. Este estándar nos ayuda a estructurar la información de manera que se pueda entender fácilmente. Con Swagger UI, puedes:

  • Probar rutas y métodos: Permite probar la funcionalidad de la API sin necesidad de herramientas externas.
  • Explorar datos: Puedes ver detalles como las categorías y publicaciones que ofrece la API.
  • Ver respuestas de API: Cuando se prueba una función, como la actualización de un elemento, se puede visualizar la respuesta inmediata de la API.

Por ejemplo, para ver los elementos en una categoría, simplemente se realiza un clic en el botón para ejecutar y se despliegan los resultados directamente en la documentación.

¿Qué son JSON y JSON-LD?

Cuando trabajamos con datos en APIs, los formatos JSON y JSON-LD son cruciales.

  • JSON (JavaScript Object Notation): Es el formato estándar para el intercambio de datos. Utiliza pares de clave-valor, donde la clave es una cadena de caracteres y el valor puede ser un número, cadena, booleano, etc.

  • JSON-LD (JavaScript Object Notation for Linked Data): Es una extensión de JSON que permite representar datos vinculados. Usado para ofrecer semántica adicional a los datos con elementos especiales que comienzan con el símbolo @.

Por ejemplo, JSON-LD puede mostrar cómo una categoría dentro de una base de datos tiene una entidad única con un ID único, lo cual es útil para crear estructuras de datos más comprensibles para las máquinas.

¿Por qué marcar entidades como recursos de API?

Al desarrollar APIs con API Platform, una práctica importante es marcar las entidades como recursos de API. Esto se logra a través de anotaciones dentro de las clases que componen nuestra aplicación:

  • Configuración de operaciones: Esto permite definir cómo los datos deben responder a diferentes operaciones HTTP como GET, POST, PUT, PATCH y DELETE.

  • Facilidad de personalización: Mediante estas anotaciones, podemos personalizar cómo se comportan nuestras entidades en el contexto de la API.

Dicho de otro modo, al marcar una entidad, se está dando la posibilidad de manipular de manera sencilla sus operaciones, lo cual mejora el control y la flexibilidad al trabajar con datos en la API.

¿Cómo se gestionan las rutas de API?

La gestión de rutas es esencial para el buen funcionamiento de una API. Puedes realizar operaciones específicas para gestionar rutas:

  • Comando para visualizar rutas: Usar php bin/console debug:router ayuda a revisar todas las rutas que tiene la API, incluyendo las de categorías y publicaciones.

  • Personalización de rutas: Es posible cambiar el prefijo de los endpoints de la API para adaptarlos a diferentes versiones o necesidades específicas. Por ejemplo, se puede cambiar "API" por "APIMIA" o especificar el uso de "API versión 1".

Estas técnicas permiten que las rutas sean comprensibles y reflejen las intenciones del desarrollador o empresa detrás de la API, facilitando su mantenimiento y evolución.

¿Por qué es importante experimentar con la documentación interactiva?

Experimentar con la documentación interactiva, probando diferentes operaciones y configuraciones, es fundamental para entender profundamente cómo funciona la API y cómo manipular los datos que maneja. Realizar prácticas y manipulaciones en el entorno interactivo no solo te dará confianza y habilidades, sino que también te permitirán adaptarte rápidamente a cambios futuros o integraciones con nuevos servicios.

Es esencial invertir tiempo en explorar, aprender y dominar las herramientas interactivas de documentación para maximizar el potencial de cualquier proyecto dentro del desarrollo de APIs.