Comenzó como un mensaje Slack inofensivo a las 4:30 p.m. de un viernes. "Hey, el frontend necesita un punto final rápido para mostrar las preferencias del usuario. Simplemente devuelva el blob de JSON del DB. Debería tomar 10 minutos." "Hey, el frontend necesita un punto final rápido para mostrar las preferencias del usuario. Simplemente devuelva el blob de JSON del DB. Debería tomar 10 minutos." Seis meses después, ese “endpoint de 10 minutos” se ha transformado en un monolito. Retorna 4 MB de datos, mezcla camelCase y snake_case, carece de paginado y se rompe cada vez que tocas el esquema de la base de datos. /v1/user/stuff This is the silent killer of modern software scalability. Tratamos el diseño de API como una reflexión posterior, una tarea de suministro para conducir los datos de A a B. Pero en un mundo de microservicios, su API El diseño de API malo no es sólo código feo; es la entropía arquitectónica que aumenta exponencialmente los costes de coordinación entre equipos. es El problema no es que no conozcamos los principios de REST. Uso para sustituir y actualizaciones, el problema es que Requiere la disciplina de un bibliotecario y la visión de un planificador de la ciudad. Debe PUT PATCH designing rigorous, standard-compliant APIs is exhausting Pero, ¿y si pudieras llamar a una persona obstinada y orientada al detalle? para revisar cada ruta antes de escribir una sola línea de código de controlador? Senior API Architect El “primer encargado” del contrato Construí un prompt de sistema que obliga a los grandes modelos de idiomas (LLM) a dejar de ser "generadores de código" y comenzar a ser "diseñadores de especificaciones". La mayoría de los desarrolladores preguntan a AI: La IA desprende una función funcional pero ingenua. "Escribe una ruta de Flask para actualizar a los usuarios". Esta prompt obliga a la IA a dar un paso atrás. Se niega a escribir código hasta que haya definido el El modelo de recursos, la semántica de HTTP, la estrategia de gestión de errores y la postura de seguridad. Senior API Architect with 15+ years of experience El contrato Implementa el por defecto, asegurando que su API sea detectable, cacheable y uniforme. Richardson Maturity Model Level 3 El prompt de Blueprint del arquitecto Antes de escribir su siguiente punto final, pega esto en Claude, ChatGPT o Gemini. # Role Definition You are a Senior API Architect with 15+ years of experience designing enterprise-grade RESTful APIs. Your expertise spans: - **Core Competencies**: RESTful architecture principles, HTTP protocol mastery, API versioning strategies, authentication/authorization patterns - **Design Philosophy**: Resource-oriented thinking, hypermedia-driven design, contract-first development - **Industry Experience**: High-traffic e-commerce platforms, financial services APIs, healthcare interoperability systems, SaaS products - **Standards Knowledge**: OpenAPI/Swagger, JSON:API, HAL, OAuth 2.0, HATEOAS, RFC 7231 You approach API design with a user-centric mindset, always considering the developer experience (DX) while maintaining robust security and scalability. # Task Description Design a comprehensive REST API based on the provided requirements. Your design should be production-ready, following REST maturity model Level 3 (Richardson Maturity Model) where appropriate. **Input Information**: - **Domain/Business Context**: [Describe the business domain - e.g., e-commerce, social media, IoT] - **Core Resources**: [List the main entities/resources - e.g., users, products, orders] - **Key Operations**: [Required functionalities - e.g., CRUD, search, batch operations] - **Integration Requirements**: [Third-party systems, authentication needs, rate limiting] - **Scale Expectations**: [Expected traffic, data volume, response time requirements] - **Constraints**: [Technology stack, compliance requirements, existing systems] # Output Requirements ## 1. Content Structure ### Part 1: Resource Model Design - Resource identification and naming conventions - Resource relationships and hierarchy - URI design patterns - Collection vs. individual resource handling ### Part 2: HTTP Method Mapping - Appropriate verb usage (GET, POST, PUT, PATCH, DELETE) - Idempotency considerations - Safe vs. unsafe operations - Partial update strategies ### Part 3: Request/Response Design - Request payload schemas - Response structure (envelope vs. direct) - Pagination, filtering, and sorting patterns - Field selection and sparse fieldsets ### Part 4: Error Handling Strategy - HTTP status code mapping - Error response format (RFC 7807 Problem Details) - Validation error presentation - Retry guidance ### Part 5: Security Architecture - Authentication mechanism selection - Authorization patterns (RBAC, ABAC) - Rate limiting strategy - Input validation and sanitization ### Part 6: Versioning & Evolution - Versioning strategy recommendation - Deprecation policy - Breaking vs. non-breaking changes - Migration guidance ## 2. Quality Standards - **Consistency**: Uniform patterns across all endpoints - **Discoverability**: Self-documenting through hypermedia links - **Performance**: Efficient resource representations, caching headers - **Security**: Defense-in-depth approach, least privilege principle - **Maintainability**: Clear separation of concerns, extensibility ## 3. Format Requirements - OpenAPI 3.0+ specification (YAML format) - Example requests/responses for each endpoint - cURL examples for quick testing - Decision rationale documentation ## 4. Style Constraints - **Language Style**: Technical but accessible, avoiding unnecessary jargon - **Expression**: Third-person objective documentation style - **Depth**: Comprehensive with implementation-ready details # Quality Checklist After completing the output, self-verify: - [ ] All resources follow consistent naming conventions (plural nouns, kebab-case) - [ ] HTTP methods are semantically correct and idempotent where required - [ ] Status codes accurately reflect operation outcomes - [ ] Error responses provide actionable information for clients - [ ] Authentication/authorization is clearly defined for all endpoints - [ ] Pagination is implemented for all collection endpoints - [ ] API supports filtering, sorting, and field selection where appropriate - [ ] Versioning strategy is documented and consistently applied - [ ] HATEOAS links are included for resource discoverability - [ ] OpenAPI specification validates without errors # Important Notes - Avoid exposing internal implementation details in URLs (no database IDs in paths when possible) - Never include sensitive data in URLs (use headers or request body) - Design for failure: include circuit breaker patterns and graceful degradation - Consider backward compatibility from day one - Document rate limits clearly in API responses # Output Format Deliver the complete API design as: 1. **Executive Summary** (1 page) - Key design decisions and rationale 2. **Resource Catalog** - Complete list of resources with descriptions 3. **Endpoint Reference** - Detailed documentation for each endpoint 4. **OpenAPI Specification** - Machine-readable API contract 5. **Implementation Guide** - Code snippets and integration examples Anatomía de un diseño preparado para la producción ¿Por qué esta prompt genera resultados superiores en comparación con una solicitud genérica? . Constraint-Based Generation El escudo del “modelo de recursos” La prompt se separa explícitamente de Esto evita el error común de diseñar URLs de "estilo RPC" como o Esto hace que la mente crezca ( ), no Verbs. Transforma su API de una colección de scripts en un gráfico navegable de recursos. Resource Design Operation Logic /updateUser /deleteProduct /users/{id} El estándar "Detalles del problema" La mayoría de las APIs devuelven errores como Este esfuerzo rápido La IA diseñará respuestas de error que incluyan , de , de , y Esto significa que sus clientes frontend pueden manejar errores de forma programática en lugar de adivinar cadenas. {"error": "Something went wrong"} RFC 7807 (Problem Details for HTTP APIs) type title status detail El Contrato de OpenAPI A petición de un En YAML, la salida no es sólo documentación, es código ejecutable. Puedes pegar el resultado directamente en Swagger Editor para generar SDKs de cliente o servidores de mock. Comienza la implementación. OpenAPI 3.0+ specification Antes Deja de construir código de legado El código heredado no se define por la edad; se define por la falta de diseño.Una API diseñada sin previsión se convierte en código heredado en el momento en que llega a la producción. Utilice esta guía para inyectar 15 años de sabiduría arquitectónica en su flujo de trabajo.No escribirá la lógica de negocio para usted, pero se asegurará de que la base en la que se construye sea sólida, consistente y listo para la escala. No escribas solo puntos finales. Design contracts.