Communitygithub.com

aj-geddes/rest-api-design

Concevez des API RESTful en suivant les bonnes pratiques pour la modélisation des ressources, les méthodes HTTP, les codes d'état, le versioning et la documentation. Utilisez-le lors de la création de nouvelles API, de la conception de points de terminaison ou de l'amélioration de l'architecture API existante.

Qu'est-ce que rest-api-design ?

Cette compétence guide la conception d'API RESTful en appliquant des normes industrielles reconnues, couvrant la modélisation des ressources, les verbes HTTP, les codes de statut, la gestion des versions et la rédaction de documentation claire. Elle est utile pour les développeurs et architectes qui souhaitent créer des API cohérentes, évolutives et faciles à maintenir, que ce soit pour un nouveau projet ou pour refactorer une API existante. La compétence s'appuie sur les principes REST fondamentaux et propose des recommandations concrètes, comme l'utilisation d'une nomenclature cohérente pour les endpoints, la sélection des codes HTTP appropriés (200, 201, 204, 400, 404, 500, etc.), et l'adoption de stratégies de versioning (via URI ou en-têtes). Elle fonctionne avec tout environnement de développement (Node.js, Python, Java, etc.) et peut être intégrée dans des outils d'IA comme Claude Code ou Cursor pour générer des spécifications, des schémas de ressources et des squelettes d'endpoints. En bref, elle permet de gagner du temps et d'éviter les erreurs courantes en standardisant la conception des API REST.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aj-geddes/useful-ai-prompts/tree/main/skills/rest-api-design

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait rest-api-design ?

Concevez des API RESTful en suivant les bonnes pratiques pour la modélisation des ressources, les méthodes HTTP, les codes d'état, le versioning et la documentation. Utilisez-le lors de la création de nouvelles API, de la conception de points de terminaison ou de l'amélioration de l'architecture API existante.

Principes fondamentaux

  • Modélisation des ressources : Nommez les ressources avec des noms (pluriels) et utilisez des identifiants uniques (par exemple /utilisateurs, /utilisateurs/{id}).
  • Méthodes HTTP : Utilisez les verbes standards : GET pour lire, POST pour créer, PUT/PATCH pour mettre à jour, DELETE pour supprimer.
  • Codes d'état : Renvoyez les codes appropriés : 200 pour succès, 201 pour création, 204 pour suppression réussie, 400 pour erreur client, 404 pour ressource non trouvée, 500 pour erreur serveur.
  • Versioning : Gérez les versions via l'URI (par exemple /v1/utilisateurs) ou l'en-tête Accept. Évitez les ruptures de compatibilité.
  • Documentation : Documentez chaque endpoint avec OpenAPI / Swagger, en précisant les paramètres, les réponses et les exemples.

Bonnes pratiques supplémentaires

  • Utilisez des requêtes paramétrées pour le filtrage, le tri et la pagination (par exemple ?page=1&limit=20&tri=nom).
  • Gérez les erreurs de manière uniforme avec un format JSON standard (par exemple {"erreur": "message", "code": 400}).
  • Implémentez l'authentification et l'autorisation via des jetons (OAuth2, JWT).
  • Limitez les taux de requêtes avec des en-têtes RateLimit-*.
  • Supportez la négociation de contenu via Content-Type et Accept.

Exemples de structure d'API

GET    /v1/utilisateurs          # Liste des utilisateurs
POST   /v1/utilisateurs          # Créer un utilisateur
GET    /v1/utilisateurs/{id}     # Lire un utilisateur
PUT    /v1/utilisateurs/{id}     # Mettre à jour un utilisateur
DELETE /v1/utilisateurs/{id}     # Supprimer un utilisateur

Ressources

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

aj-geddes/android-kotlin-development

Develop native Android apps with Kotlin. Covers MVVM with Jetpack, Compose for modern UI, Retrofit for API calls, Room for local storage, and navigation architecture.

aj-geddes/ansible-automation

Infrastructure automation and configuration management using Ansible playbooks, roles, and inventory. Use for deploying applications, patching, and managing servers.

aj-geddes/architecture-diagrams

Create system architecture diagrams using Mermaid, PlantUML, C4 model, flowcharts, and sequence diagrams. Use when documenting architecture, system design, data flows, or technical workflows.

aj-geddes/code-review-analysis

Perform comprehensive code reviews with best practices, security checks, and constructive feedback. Use when reviewing pull requests, analyzing code quality, checking for security vulnerabilities, or providing code improvement suggestions.

aj-geddes/flask-api-development

Develop lightweight Flask APIs with routing, blueprints, database integration, authentication, and request/response handling. Use when building RESTful APIs, microservices, or lightweight web services with Flask.

aj-geddes/ios-swift-development

Develop native iOS apps with Swift. Covers MVVM architecture, SwiftUI, URLSession for networking, Combine for reactive programming, and Core Data persistence.

aj-geddes/jenkins-pipeline

Build Jenkins declarative and scripted pipelines with stages, agents, parameters, and plugins. Implement multi-branch pipelines and deployment automation.

aj-geddes/markdown-documentation

Master markdown formatting, GitHub Flavored Markdown, README files, and documentation formatting. Use when writing markdown docs, READMEs, or formatting documentation.

aj-geddes/nginx-configuration

Configure Nginx web server for high-performance reverse proxy, load balancing, SSL/TLS, caching, and API gateway functionality.

aj-geddes/nodejs-express-server

Build production-ready Express.js servers with middleware, authentication, routing, and database integration. Use when creating REST APIs, managing requests/responses, implementing middleware chains, and handling server logic.

aj-geddes/wireframe-prototyping

Create wireframes and interactive prototypes to visualize user interfaces and gather feedback early. Use tools and techniques to communicate design ideas before development.

Skills associés