Ξεκίνησε ως ένα αβλαβές μήνυμα Slack στις 4:30 μ.μ. την Παρασκευή. "Ω, το frontend χρειάζεται ένα γρήγορο τερματικό σημείο για να εμφανίσει τις προτιμήσεις του χρήστη. Απλά επιστρέψτε το blob JSON από το DB. Θα πρέπει να διαρκέσει 10 λεπτά." "Ω, το frontend χρειάζεται ένα γρήγορο τερματικό σημείο για να εμφανίσει τις προτιμήσεις του χρήστη. Απλά επιστρέψτε το blob JSON από το DB. Θα πρέπει να διαρκέσει 10 λεπτά." Έξι μήνες αργότερα, αυτό το «10-λεπτό τέλος» έχει μετατραπεί σε ένα μονολιθικό Επιστρέφει 4MB δεδομένων, αναμιγνύει camelCase και snake_case, λείπει η pagination και σπάει κάθε φορά που αγγίζετε το σχήμα της βάσης δεδομένων. /v1/user/stuff This is the silent killer of modern software scalability. Αντιμετωπίζουμε το σχεδιασμό των API ως μια μετά-σκέψη - μια εργασία υδραυλικού για τον αγωγό δεδομένων από το A στο B. Αλλά σε έναν κόσμο μικροεξυπηρέτησης, το API σας Ο κακός σχεδιασμός API δεν είναι μόνο άσχημος κώδικας. είναι η αρχιτεκτονική εντροπία που αυξάνει εκθετικά το κόστος συντονισμού μεταξύ των ομάδων. είναι Το πρόβλημα δεν είναι ότι δεν γνωρίζουμε τις αρχές του REST. Χρησιμοποιήστε Οι αντικαταστάσεις και για την ενημέρωση.Το πρόβλημα είναι ότι Απαιτεί την πειθαρχία ενός βιβλιοθηκονόμου και την προοπτική ενός πολεοδομικού σχεδιαστή. Πρέπει PUT PATCH designing rigorous, standard-compliant APIs is exhausting Αλλά τι θα γινόταν αν μπορούσατε να καλέσετε έναν επίμονο, λεπτομερώς προσανατολισμένο να αναθεωρήσετε κάθε διαδρομή πριν γράψετε μια ενιαία γραμμή κώδικα ελέγχου; Senior API Architect Ο «πρώτος» εκτελεστής Δημιούργησα ένα System Prompt που αναγκάζει τα μεγάλα μοντέλα γλώσσας (LLMs) να σταματήσουν να είναι «γεννήτριες κώδικα» και να αρχίσουν να είναι «σχεδιαστές προδιαγραφών». Οι περισσότεροι προγραμματιστές ρωτούν: Το AI εκπέμπει μια λειτουργική αλλά αφελής λειτουργία. "Γράψτε μια διαδρομή Flask για την ενημέρωση των χρηστών." Αυτή η προτροπή αναγκάζει την AI να κάνει ένα βήμα πίσω. αρνείται να γράψει κώδικα μέχρι να ορίσει το Το μοντέλο πόρων, η σημασιολογία HTTP, η στρατηγική αντιμετώπισης σφαλμάτων και η στάση ασφαλείας. Senior API Architect with 15+ years of experience συμβόλαιο Εφαρμόζει το από προεπιλογή, διασφαλίζοντας ότι το API σας είναι ανιχνεύσιμο, cacheable και ομοιόμορφο. Richardson Maturity Model Level 3 Το Blueprint Prompt του Αρχιτέκτονα Πριν γράψετε το επόμενο σημείο τερματισμού σας, επικολλήστε αυτό στο Claude, ChatGPT ή 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 Ανατομία ενός σχεδιασμού έτοιμου για παραγωγή Γιατί αυτή η προτροπή παράγει ανώτερα αποτελέσματα σε σύγκριση με ένα γενικό αίτημα; Επιβάλλει . Constraint-Based Generation Το «Μοντέλο Πόρων» της Ασπίδας Η ταχύτητα ξεχωρίζει ρητά από Αυτό αποτρέπει το συνηθισμένο λάθος του σχεδιασμού URL "RPC-style" όπως ή Δίνει τη δυνατότητα στον άνθρωπο να σκέφτεται σε νουβέλες ( Μετατρέπει το API σας από μια συλλογή σεναρίων σε ένα περιηγητικό γράφημα πόρων. Resource Design Operation Logic /updateUser /deleteProduct /users/{id} Το πρότυπο «Λεπτομέρειες προβλήματος» Τα περισσότερα API επιστρέφουν σφάλματα όπως Αυτή η άμεση επιβολή Το AI θα σχεδιάσει απαντήσεις σφάλματος που περιλαμβάνουν , , και Αυτό σημαίνει ότι οι πελάτες frontend μπορούν να χειριστούν προγραμματικά τα λάθη αντί να μαντέψουν τις σειρές. {"error": "Something went wrong"} RFC 7807 (Problem Details for HTTP APIs) type title status detail Η σύμβαση OpenAPI Ζητώντας μια Στο YAML, η έξοδος δεν είναι μόνο τεκμηρίωση – είναι εκτελεστός κώδικας. Μπορείτε να επικολλήσετε το αποτέλεσμα απευθείας στο Swagger Editor για να δημιουργήσετε SDKs πελάτη ή mock servers. Η εφαρμογή ξεκινά. OpenAPI 3.0+ specification ΠΡΙΝ Σταματήστε να χτίζετε κώδικα κληρονομιάς Ο κώδικας κληρονομιάς δεν ορίζεται από την ηλικία, ορίζεται από την έλλειψη σχεδιασμού.Ένα API που σχεδιάστηκε χωρίς προοπτική γίνεται κώδικας κληρονομιάς τη στιγμή που χτυπά την παραγωγή. Χρησιμοποιήστε αυτή τη συμβουλή για να εισαγάγετε 15 χρόνια αρχιτεκτονικής σοφίας στη ροή εργασίας σας. δεν θα γράψει τη λογική των επιχειρήσεων για εσάς, αλλά θα εξασφαλίσει ότι το θεμέλιο που χτίζετε είναι σταθερό, συνεπές και έτοιμο για κλίμακα. Μην γράφετε μόνο endpoints. Design contracts.