api-platformaudit
Audite un projet API Platform existant et produit un rapport de bonnes pratiques, performances et sécurité
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Audite un projet API Platform existant et produit un rapport de bonnes pratiques, performances et sécurité
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Génère des DTOs (input/output) API Platform avec mapping vers les entités
Génère des filtres API Platform (search, date, range, order, boolean, exists, custom)
Génère un State Processor API Platform pour personnaliser la persistence des données
Génère un State Provider API Platform pour personnaliser la récupération de données
Génère une API Resource complète avec attribut
Génère des tests fonctionnels API Platform (PHPUnit/ApiTestCase) pour une resource
SOC 직업 분류 기준
| name | api-platform:audit |
| description | Audite un projet API Platform existant et produit un rapport de bonnes pratiques, performances et sécurité |
| model | sonnet |
| allowed-tools | ["Read","Grep","Glob","Bash"] |
| version | 1.0.0 |
| license | MIT |
Audite un projet API Platform existant pour vérifier les bonnes pratiques, la sécurité, les performances et la cohérence de configuration.
IMPORTANT : Exécute ce workflow étape par étape :
composer.json pour la version d'API Platform installéeconfig/packages/api_platform.yaml ou config/packages/api_platform.php#[ApiResource] via GrepVérifier pour chaque resource :
Configuration :
Sécurité :
security défini sur les opérations sensibles (POST, PUT, PATCH, DELETE)nelmio_cors)Performances :
pagination_enabled: false sur de grandes collections)Architecture :
Vérifier dans config/packages/api_platform.yaml :
api_platform:
title: 'Mon API' # Titre défini
version: '1.0.0' # Version définie
formats: # Formats explicites
jsonld: ['application/ld+json']
defaults:
pagination_items_per_page: 30 # Pagination par défaut raisonnable
pagination_client_enabled: true # Contrôle client de la pagination
mapping:
paths: ['%kernel.project_dir%/src/Entity']
tests/ avec Grepcomposer.lockGénérer un rapport structuré :
## Rapport d'audit API Platform
### Résumé
- Resources API : {nombre}
- Opérations totales : {nombre}
- Score global : {score}/100
### Resources auditées
| Resource | Opérations | Sécurité | Sérialisation | Filtres | Tests |
|----------|-----------|----------|---------------|---------|-------|
| Product | 6/6 | OK | OK | 3 | Oui |
| User | 4/6 | WARN | MISSING | 0 | Non |
### Problèmes critiques
1. [CRITIQUE] Resource User sans sécurité sur POST
2. [CRITIQUE] Mot de passe exposé dans la sérialisation User
### Avertissements
1. [WARN] Pas de groupes de sérialisation sur Product
2. [WARN] Pagination désactivée sur LargeCollection
### Recommandations
1. Ajouter security: "is_granted('ROLE_ADMIN')" sur User POST
2. Ajouter #[Groups(['user:read'])] et exclure le mot de passe
3. Configurer le HTTP caching pour les resources en lecture seule
### Couverture de tests
- Resources testées : {x}/{total}
- Tests manquants : {liste}
### Versions
- api-platform/core: {version} (dernière: {dernière})
- symfony/framework-bundle: {version}
| Critère | Points |
|---|---|
| Security sur opérations d'écriture | 15 |
| Pas de données sensibles exposées | 10 |
| Validation sur les inputs | 10 |
| CORS configuré | 5 |
| Critère | Points |
|---|---|
| Groupes de sérialisation | 10 |
| Opérations explicites | 10 |
| DTOs quand nécessaire | 5 |
| Documentation OpenAPI | 5 |
| Critère | Points |
|---|---|
| HTTP caching | 5 |
| Pagination configurée | 5 |
| Pas de N+1 queries | 5 |
| Critère | Points |
|---|---|
| Couverture des resources | 10 |
| Tests de sécurité | 5 |
docs/audit/ si demandé