Diseñar una API REST con especificación OpenAPI
Diseña una API REST coherente: recursos, endpoints, códigos de estado, formato de errores, paginación, versionado y un fragmento OpenAPI 3.1. Pensado para ChatGPT, Claude y Gemini. Incluye 5 variables personalizables y se copia gratis en un clic.
Avanzado · Código · Pendiente de revisión editorial
Prompt
Actúa como arquitecto de APIs con experiencia diseñando APIs REST públicas usadas por terceros.
Voy a construir la API de {{producto}}.
Consumidores principales: {{consumidores}}.
Entidades y relaciones conocidas: {{entidades}}.
Requisitos no funcionales: {{requisitos}}.
Entrega, en este orden:
1. Modelo de recursos: lista de recursos, sus atributos principales, relaciones y qué identificador usa cada uno.
2. Tabla de endpoints (método, ruta, descripción, autenticación necesaria, códigos de estado posibles). Usa sustantivos en plural, anidamiento máximo de un nivel y acciones no CRUD justificadas.
3. Convenciones: nombres de campos ({{convencion_nombres}}), fechas en ISO 8601 UTC, paginación por cursor, filtrado, ordenación y selección de campos.
4. Formato de error único basado en RFC 9457 (Problem Details), con ejemplos para 400, 401, 403, 404, 409, 422 y 429.
5. Estrategia de versionado, idempotencia (cabecera `Idempotency-Key` en POST) y control de concurrencia (ETag / If-Match).
6. Seguridad: esquema de autenticación, ámbitos de permisos y límites de peticiones.
7. Un fragmento OpenAPI 3.1 en YAML con los dos recursos principales, sus esquemas y las respuestas de error reutilizables en `components`.
8. Riesgos de diseño y decisiones que conviene revisar con el equipo.
Restricciones:
- No inventes reglas de negocio: si algo no está claro, márcalo como [COMPLETAR] y pregúntame.
- Prioriza la consistencia sobre la creatividad.Cómo usarlo
- Enumera las entidades que ya conoces aunque sea de forma aproximada.
- Indica quién consumirá la API (app móvil, partners, integraciones internas).
- Revisa la tabla de endpoints antes de pedir el OpenAPI completo.
- Importa el YAML en Swagger Editor o Stoplight para validarlo.
Ejemplo de uso
Producto: plataforma de reservas para clínicas · Consumidores: app móvil y partners · Entidades: clínica, profesional, paciente, cita.
Resultado de ejemplo
2. Endpoints (extracto)
| Método | Ruta | Descripción | Auth | Códigos |
|---|---|---|---|---|
| GET | /clinics/{clinic_id}/practitioners | Profesionales de una clínica | clinics:read | 200, 401, 404 |
| POST | /appointments | Crear cita | appointments:write | 201, 409, 422 |
| POST | /appointments/{id}/cancel | Cancelar (acción no CRUD: conserva historial) | appointments:write | 200, 409 |
7. OpenAPI 3.1 (extracto)
openapi: 3.1.0
info: { title: Clinic Booking API, version: 1.0.0 }
paths:
/appointments:
post:
parameters:
- { in: header, name: Idempotency-Key, required: true, schema: { type: string, format: uuid } }
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/Appointment' }
responses:
'201': { description: Cita creada }
'409': { $ref: '#/components/responses/Problem' }
'422': { $ref: '#/components/responses/Problem' }
components:
schemas:
Appointment:
type: object
required: [practitioner_id, patient_id, starts_at]
properties:
id: { type: string, readOnly: true }
practitioner_id: { type: string }
patient_id: { type: string }
starts_at: { type: string, format: date-time }
responses:
Problem:
description: Error en formato RFC 9457
content:
application/problem+json:
schema: { type: object, properties: { type: { type: string }, title: { type: string }, status: { type: integer }, detail: { type: string } } }
Los estados posibles de una cita y la política de cancelación son reglas de negocio: [COMPLETAR] antes de cerrar el enum status…
Datos clave
- Categoría
- Programación y desarrollo · APIs
- Tipo de resultado
- Código
- Nivel
- Avanzado
- Pensado para
- ChatGPT, Claude y Gemini
- Verificado en
- Pendiente de verificación editorial
- Variables
- Producto, Consumidores, Entidades, Requisitos no funcionales y Convención de nombres
- Idioma
- Español
- Precio
- Gratis, sin registro
- Actualizado
- 07/11/2026
Preguntas frecuentes
¿Paginación por cursor o por página y offset?
El cursor es más estable con datos que cambian y escala mejor en tablas grandes. El offset es más sencillo para paneles internos con saltos a páginas concretas. El prompt propone cursor por defecto, pero puedes pedir el cambio.
¿Puedo generar código del servidor a partir del OpenAPI?
Sí. Herramientas como OpenAPI Generator crean stubs de servidor y clientes en muchos lenguajes. Completa primero la especificación y valídala.
¿Para qué sirve este prompt?
Diseña una API REST coherente: recursos, endpoints, códigos de estado, formato de errores, paginación, versionado y un fragmento OpenAPI 3.1.
¿Con qué herramientas de IA funciona?
Está pensado para ChatGPT, Claude y Gemini. Todavía no lo hemos verificado en estas herramientas, por lo que los resultados pueden variar entre ellas.
¿Cómo personalizo el prompt?
Pulsa «Personalizar» y rellena las variables (Producto, Consumidores, Entidades, Requisitos no funcionales y Convención de nombres). El texto se actualiza al instante y después puedes copiarlo con un clic. Los valores se guardan solo en tu navegador.
¿Necesito experiencia para usarlo?
Es de nivel avanzado: está pensado para personas con experiencia en el tema que sepan evaluar y ajustar el resultado.
¿Este prompt es gratis?
Sí. Todos los prompts de HomeCasa Prompts son gratuitos, sin registro ni suscripción. Puedes usarlos también en proyectos profesionales.
¿Puedo fiarme del resultado de la IA?
Úsalo como un borrador de calidad: revisa siempre datos, cifras y afirmaciones importantes antes de publicarlos o tomar decisiones.