Communitygithub.com

Conception et Révision d'API REST

À utiliser lors de la conception d'une nouvelle API REST, de la révision d'endpoints, de routes, de contrôleurs ou d'une spécification OpenAPI/Swagger, du choix des codes de statut, de la pagination, du versioning ou des formats d'erreur, ou de la vérification d'un changement d'API pour détecter des ruptures de compatibilité.

Qu'est-ce que Conception et Révision d'API REST ?

Cette compétence permet à un agent IA d'effectuer une revue exhaustive d'une API REST du point de vue du client. Elle définit une méthodologie systématique : inventorier chaque endpoint, vérifier chacun d'eux selon des règles précises (ressources, méthodes HTTP, codes de statut, format d'erreur, nommage, pagination, idempotence, versioning, sécurité, performance), puis examiner la cohérence globale de l'API. Pour chaque anomalie, elle fournit un rapport structuré indiquant l'endpoint concerné, le problème rencontré par le client et la correction recommandée. La compétence insiste sur la détection des changements cassants (breaking changes) et sur l'importance d'une conception cohérente entre tous les endpoints. Idéale pour Claude Code, Cursor, Codex ou tout agent de développement intégré à un environnement de travail, elle s'applique aussi bien aux révisions de spécifications OpenAPI qu'à l'analyse de diffs entre anciennes et nouvelles versions d'API.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/WST2002/claude-code-skills/tree/HEAD/skills/api-design-review

Demander à votre IA préférée

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

Documentation

Révision de Conception d'API

Vue d'ensemble

Jugez une API du point de vue du client : noms prévisibles, codes de statut honnêtes, un format d'erreur unique, reprises sûres et aucun changement cassant surprise. Chaque constat pointe vers une route concrète et montre la conception corrigée.

Méthode

  1. Inventaire. Listez chaque endpoint sous la forme METHODE /chemin → codes de statut → forme requête/réponse. Lisez les routes, contrôleurs, fichiers OpenAPI et DTOs.
  2. Vérifiez chaque endpoint selon les règles ci-dessous.
  3. Vérifiez l'API dans son ensemble : la cohérence entre les endpoints est plus importante qu'un choix isolé.
  4. Modifications : si vous examinez un diff, comparez les contrats ancien et nouveau et signalez tout ce qui casse les clients existants.
  5. Rapportez en utilisant le contrat ci-dessous.

Règles

DomaineRègle
RessourcesNoms au pluriel, sans verbes : POST /commandes, pas /creerCommande. Imbriquez uniquement pour la possession réelle : /utilisateurs/{id}/commandes.
MéthodesGET lit et est sûr. POST crée. PUT remplace. PATCH modifie partiellement. DELETE supprime. Ne changez jamais l'état avec GET.
Codes de statut200 OK, 201 Créé (+ Location), 204 Pas de contenu, 400 entrée invalide, 401 non authentifié, 403 non autorisé, 404 manquant, 409 conflit, 422 validation, 429 limité par débit, 5xx uniquement pour les erreurs serveur. Jamais 200 avec {"error": ...}.
ErreursUn seul format partout, par ex. RFC 9457 : { "type", "title", "status", "detail", "errors": [{ "field", "message" }] }. Pas de traces de pile ni de SQL dans les réponses.
NommageUne seule convention pour les champs JSON (camelCase ou snake_case), identifiants cohérents, horodatages ISO 8601 UTC, montants monétaires en unités mineures entières ou chaîne décimale avec devise.
CollectionsPaginez chaque liste (curseur préféré pour les grandes données ou changeantes), limitez la taille de page, renvoyez le curseur suivant ou des liens. Filtrage et tri via des paramètres de requête.
IdempotenceLes POST répétés qui créent des paiements, commandes ou emails acceptent une Idempotency-Key. PUT et DELETE sont idempotents par conception.
VersioningUne stratégie claire (chemin /v1 ou en-tête). Les changements cassants vont dans une nouvelle version.
Changements cassantsSupprimer ou renommer des champs, changer les types, rendre optionnel obligatoire, modifier les codes de statut ou le format d'erreur, renforcer la validation.
SécuritéAuthentification sur chaque route non publique, vérification de propriété au niveau objet, limites de débit sur les routes d'authentification et coûteuses, pas de données sensibles dans les URLs.
PerformancePas de réponses sans limite, support du paramètre fields ou des réponses allégées pour les objets lourds, ETag ou Cache-Control pour les GET cachable.

Contrat de sortie

Commencez par : N endpoints examinés, M constats (X cassants). Ensuite, par ordre d'impact décroissant :

### [Cassant | Élevé | Moyen | Faible] Titre
- Endpoint : METHODE /chemin (fichier:ligne)
- Problème : ce que le client rencontre
- Correctif : la route, le code de statut ou la forme JSON corrigés

Terminez par un court Résumé de cohérence (casse, format d'erreur, pagination, versioning : cohérent ou non) et, lors d'une conception de zéro, le tableau d'endpoints proposé.

Erreurs courantes

  • Examiner les endpoints un par un et ne pas remarquer que deux d'entre eux divergent sur la casse ou le format d'erreur.
  • Recommander une refonte alors qu'un ajout rétrocompatible suffirait.
  • Qualifier un changement de sûr parce que le code serveur fonctionne encore : vérifiez ce que les clients existants envoient et attendent.
  • Utiliser 500 pour des erreurs de validation ou 404 pour des échecs d'autorisation sans décision délibérée.

Creado por Wageesha Tripathi · LinkedIn · Email · Plus de compétences

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés