Saltar al contenido principal

3.1-API_DOCUMENTATION_GUIDE

Ver en Git


Guía de Documentación de APIs - Aurapi

Introducción​

Este proyecto utiliza el estándar OpenAPI 3.0 (Swagger) para documentar todas las APIs. La documentación se genera automáticamente desde los docstrings de los métodos de las clases Resource.

Acceso a la Documentación​

Podés acceder a la especificación OpenAPI en:

  • JSON Spec: http://localhost:5000/apispec.json

Formato de Documentación​

Estructura Básica​

Cada método HTTP (GET, POST, PUT, PATCH, DELETE) debe tener un docstring en formato YAML que siga el estándar OpenAPI 3.0:

@exception_handler
def post(self):
"""
---
summary: Breve descripción de la operación
description: |
Descripción detallada de lo que hace el endpoint.
Puede tener múltiples líneas.
tags:
- Nombre del Tag/Categoría
security:
- bearerAuth: []
parameters:
- name: nombre_parametro
in: query # o path, header, cookie
required: true
schema:
type: string
description: Descripción del parámetro
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
campo1:
type: string
description: Descripción del campo
campo2:
type: integer
example: 123
responses:
200:
description: Respuesta exitosa
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 0
data:
type: object
400:
description: Solicitud incorrecta
401:
description: No autenticado
403:
description: Sin permisos
"""
# Tu código aquí

Tags Recomendados​

Organizá tus endpoints usando estos tags:

Tags Funcionales​

  • Authentication: Login, logout, tokens
  • Users: Gestión de usuarios
  • Workspaces: Espacios de trabajo
  • Fields: Campos/lotes
  • Farms: Establecimientos
  • Layers: Capas de información
  • Sampling: Muestreos
  • Resources: Recursos (máquinas, personal)
  • Marketplace: Marketplace y extensiones
  • Storage: Almacenamiento
  • Reports: Reportes
  • Analytics: Analíticas

Tag Especial: public_api​

IMPORTANTE: Todos los endpoints que deben ser parte de la documentación pública (Swagger público para desarrolladores externos) DEBEN incluir el tag public_api además de su tag funcional.

Seguridad​

Para endpoints que requieren autenticación:

security:
- bearerAuth: []

Checklist de Documentación​

Antes de considerar un endpoint documentado, verificá que tenga:

  • Summary claro y conciso
  • Description detallada
  • Tags apropiados
  • Todos los parámetros documentados
  • Request body con schema completo (si aplica)
  • Respuestas 200, 400, 401, 403 documentadas
  • Ejemplos de request/response
  • Indicación de seguridad (si requiere auth)

Herramientas​

Validar Documentación​

Podés validar tu documentación usando:

# Instalar validador
pip install openapi-spec-validator

# Validar spec
openapi-spec-validator http://localhost:5000/apispec.json

Mejores Prácticas​

  1. Sé consistente: Usá los mismos nombres y estructuras en toda la API
  2. Sé descriptivo: Las descripciones deben ser claras y completas
  3. Incluí ejemplos: Facilitan el uso de la API
  4. Documentá errores: Todos los posibles códigos de error
  5. Mantené actualizado: Actualizá la doc cuando cambies el código
  6. Usá schemas reutilizables: Para objetos comunes, definí schemas en components

Soporte​

Para dudas sobre la documentación: