fswp-api-developer

Compétence dédiée au développement d'API REST WordPress et à l'API Abilities pour Full-Stack WP Developer. Couvre l'enregistrement de routes avec schémas, validation et assainissement des arguments, callbacks de permission, classes de contrôleur, exposition de types de publication et métadonnées, authentification (nonce de cookie, mots de passe d'application), pagination et erreurs, ainsi que l'enregistrement d'abilities avec schémas d'entrée/sortie et annotations de sécurité. À utiliser pour tout point de terminaison personnalisé ou capacité lisible par machine dans un plugin ou un thème.

Qu'est-ce que fswp-api-developer ?

Cette compétence est conçue pour les développeurs travaillant sur l'API REST WordPress et l'API Abilities Core dans le cadre du développement Full-Stack WordPress. Elle couvre les aspects fondamentaux de la création d'API : enregistrement de routes avec validation et assainissement des arguments, callbacks de permission obligatoires, retour de données formatées et gestion des erreurs via `WP_Error`. Elle détaille l'utilisation des contrôleurs `WP_REST_Controller` pour organiser les points de terminaison, l'exposition sécurisée des types de publication personnalisés et des métadonnées, et les différentes méthodes d'authentification (cookie nonce, mots de passe d'application). La compétence introduit également l'API Abilities, une API Core récente pour enregistrer des capacités lisibles par machine (avec schémas JSON d'entrée/sortie, vérification de permission et callback d'exécution) destinées aux outils et agents IA. Elle insiste sur les règles de sécurité (validation, échappement, contrôle d'accès), la pagination des collections, la non-exposition de données sensibles, et l'importance des annotations de sécurité (read-only, destructive). Elle s'applique sur les plateformes WordPress où l'API REST et l'API Abilities sont disponibles, avec un référencement systématique aux guides de style et de sécurité du projet FSWP.

Compatible avec~Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add https://github.com/syncwin/fswp-developer/tree/main/skills/fswp-api-developer

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

Développeur API FSWP

Fondamental (toujours appliqué) : fswp-developer/references/lean-coding.md (écrire moins, réutiliser d'abord), fswp-developer/references/coding-standards.md (normes de codage, documentation, i18n, accessibilité), et fswp-security-engineer (entrée, sortie, autorisation).

Référence officielle : Guide de l'API REST (fswp-developer/references/official-docs.md). Les règles de sécurité dans fswp-security-engineer s'appliquent à chaque route.

Enregistrer une route

function vp_register_routes() {
	register_rest_route( 'vendor-prefix/v1', '/items/(?P<id>\d+)', array(
		'methods'             => WP_REST_Server::READABLE,
		'callback'            => 'vp_get_item',
		'permission_callback' => function ( WP_REST_Request $r ) {
			return current_user_can( 'edit_post', (int) $r['id'] );
		},
		'args'                => array(
			'id' => array( 'type' => 'integer', 'required' => true, 'sanitize_callback' => 'absint' ),
		),
	) );
}
add_action( 'rest_api_init', 'vp_register_routes' );

Règles

  • Espace de nommage et version : vendor-prefix/v1. Ne jamais enregistrer dans l'espace de nommage wp/v2 de WordPress.
  • permission_callback est obligatoire. Retourne une vérification de capacité, pas seulement l'état de connexion. Utilise __return_true uniquement pour des données réellement publiques, avec un commentaire expliquant pourquoi. Vérifie l'accès au niveau de l'objet (edit_post, propriété) chaque fois qu'un ID est présent dans la requête.
  • Déclare les args avec type, required, enum, minimum/maximum, validate_callback et sanitize_callback. La requête n'est pas fiable même après validation ; utilise les valeurs de $request->get_param() telles qu'elles sont typées.
  • Retourne les données avec rest_ensure_response() ; les erreurs sous forme de new WP_Error( 'vp_code', __( 'Message', 'text-domain' ), array( 'status' => 404 ) ). Utilise des codes de statut précis (400 invalide, 401 non authentifié, 403 interdit, 404 manquant, 409 conflit, 413 trop volumineux).
  • Schéma : implémente get_item_schema() (ou le callback schema) pour que les clients et l'index puissent décrire la ressource ; formate les réponses avec prepare_item_for_response().
  • Collections : prend en charge page/per_page avec une limite maximale, définit X-WP-Total et X-WP-TotalPages, et ne retourne jamais de listes non limitées.
  • Ne jamais retourner de secrets, de hachages de mots de passe, d'options brutes ou de données privées d'autres utilisateurs.
  • Contrôleurs : pour plus de quelques routes, étends WP_REST_Controller (register_routes, get_items, get_item, create_item, vérifications de permission par méthode) et enregistre la classe une fois.
  • Exposer les objets de base : types de publication personnalisés et taxonomies avec 'show_in_rest' => true (et rest_base) ; métadonnées avec register_meta()/register_post_meta() et 'show_in_rest' => true ainsi qu'un schéma et un auth_callback.
  • Mise en cache et performance : gestionnaires GET légers ; mets en cache les résultats coûteux (fswp-performance-engineer) ; évite les requêtes dans les boucles.

Authentification

ClientMéthode
JS sur le même site (admin, blocs, front-end)Authentification par cookie avec l'en-tête X-WP-Nonce (wp_create_nonce( 'wp_rest' ), ou wp_localize_script / @wordpress/api-fetch qui l'ajoute)
Serveur externe ou applicationMots de passe d'application via HTTPS, ou un plugin OAuth approuvé
Lecture publiqueAucune authentification, uniquement lorsque les données sont publiques

Les nonces ne remplacent pas les vérifications de capacité. CORS : n'ouvre pas Access-Control-Allow-Origin: * sur les routes authentifiées.

Côté client

Utilise @wordpress/api-fetch dans les blocs et les écrans d'administration. Gère les erreurs par code et message, pas en analysant le texte.

API Abilities

Une API Core pour enregistrer des capacités discrètes et lisibles par machine (nom, schéma d'entrée, schéma de sortie, vérification de permission, callback d'exécution) que les outils et agents IA peuvent découvrir et appeler. Elle est récente : confirme la version minimale de WordPress et les noms de fonctions exacts dans la documentation développeur avant de l'utiliser (recherche "Abilities API"). Utilise-la uniquement lorsque le PRD nécessite des fonctions appelables par un agent ; l'API REST classique est adaptée aux appels client-serveur ordinaires.

Lors de l'enregistrement d'une ability :

  • Enregistre d'abord la catégorie, puis l'ability, sur les hooks documentés.
  • Fournis des schémas JSON pour l'entrée et la sortie, et un permission_callback qui vérifie une capacité réelle.
  • Définis honnêtement les annotations de sécurité : les abilities read-only ne doivent pas écrire, les destructives doivent être signalées. Un callback qui écrit alors qu'il est annoté read-only est un défaut, et fswp-reviewer le traite comme tel.
  • Expose via REST uniquement ce qui doit pouvoir être appelé à distance.

Procédures d'audit et de vérification : references/abilities.md.

Pour proposer quels points de terminaison existants devraient devenir des abilities, liste chaque route avec sa méthode, sa vérification de permission actuelle, ses effets secondaires et une annotation suggérée ; n'enregistre rien avant approbation.

Individual skills in this repo

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

fswp-architect

Planning stage of Full-Stack WP Developer. Classifies the work (new plugin, new theme, update to an existing plugin or theme, add-on for another product, or WordPress Core patch), triages existing code with a bundled detection script, asks one round of essential questions, does competitive research, and produces one reviewable PRD or change brief with a single approval gate. Also covers Migration mode and multi-session handoff docs. Invoked by fswp-developer before any code is written; consult directly for PRD, change-brief, or handoff-doc questions.

fswp-block-developer

Domain skill for WordPress block editor work in Full-Stack WP Developer. Covers building custom Gutenberg blocks (block.json, static and dynamic rendering, attributes, supports, InnerBlocks, variations, deprecations, block bindings), block patterns, and the Interactivity API (data-wp directives, stores, server-side state), with the @wordpress/scripts build workflow. Use for any custom block, pattern, or front-end interactivity in a plugin or theme.

fswp-core-contributor

WordPress Core contribution stage of Full-Stack WP Developer. Guides a contributor through finding or filing a Trac ticket, setting up the wordpress-develop checkout and test environment, writing a patch or GitHub pull request that follows Core coding standards, inline documentation, backward compatibility and tests, and preparing the ticket comment; also routes block-editor changes to the Gutenberg repository and security reports to the private process. Invoked by fswp-developer for Core patches; consult directly for Core workflow questions.

fswp-devops-engineer

Domain skill for WordPress development tooling in Full-Stack WP Developer. Covers local environments (wp-env with Docker, WordPress Playground and Blueprints), command-line site operations (plugin and theme management, database export, search-replace, cron, scaffolding), coding standards and static analysis (PHPCS with WordPress standards, PHPStan with WordPress stubs), PHP and JS testing setup, and the @wordpress/scripts toolchain. Use when setting up, running, or automating a WordPress dev or test environment.

fswp-maintainer

Change stage for existing WordPress code in Full-Stack WP Developer. Updates, fixes, refactors, and upgrades existing plugins and themes without breaking them, and builds add-ons for products you do not own (WooCommerce extensions, page-builder elements, extensions of other plugins) using hooks instead of edits to third-party files. Covers reading before changing, parity lists, deprecation, host compatibility, upgrade paths, and patch delivery. Invoked by fswp-developer after an approved change brief; consult directly for safe-change or add-on questions.

fswp-qa-engineer

Verification stage of Full-Stack WP Developer. Runs the mechanical gate for plugins and themes (house-rule scripts, PHP lint, PHPCS with WordPress standards, PHP compatibility, PHPStan with WordPress stubs), the manual checklist, PRD or change-brief scenario tests, and the pre-release check. Reports PASS, FAIL, or NOT RUN and never implies a skipped check passed. Invoked by fswp-developer after a build and again before delivery; consult directly to audit any plugin or theme folder.

fswp-reviewer

Independent review stage of Full-Stack WP Developer. Reviews a finished WordPress plugin, theme, add-on, or Core patch through a security lens (WordPress-specific vulnerabilities, REST and AJAX authorization with an API risk map, AI-generated-code risks), a quality lens (error handling, data and upgrade safety, performance, i18n, accessibility, comment accuracy, test gaps, class and type design, scope), and an optional lean lens for trimming over-engineering, reporting only high-confidence findings in a fixed format. Invoked by fswp-developer after the verify gate, normally through the fswp-code-reviewer agent; consult directly to review or optimize any WordPress code.

fswp-theme-developer

Theme build stage of Full-Stack WP Developer. Builds custom WordPress themes - block themes (theme.json, templates, template parts, patterns, style variations), classic themes (template hierarchy, functions.php, theme supports), hybrids, and child themes - with accessibility, escaping, and directory readiness built in, plus a scaffold script. Invoked by fswp-developer after an approved PRD for a new theme; consult directly for a specific theme pattern. For changes to an existing theme use fswp-maintainer.

syncwin/fswp-plugin-developer

Plugin build stage of Full-Stack WP Developer. House standards and code templates for real WordPress plugins (not shortcode snippets) - folder anatomy, activation/uninstall lifecycle, custom post types and tables, admin UI tiers, front-end output on the Atomic Framework, REST and cron, i18n, distribution, and the Tier 3 React admin stack - plus a scaffold script. Also the base structure for add-ons. Invoked by fswp-developer after an approved PRD; consult directly for a specific plugin build pattern.

Skills associés