API Exit Preview
Type de ressource : Route Astro (Endpoint API)
Fichier source :src/pages/api/exit-preview.ts
Statut : Actif
1. Vue dâensemble
Section titled â1. Vue dâensembleâ1.1. Description
Section titled â1.1. DescriptionâEndpoint API pour dĂ©sactiver le mode preview Sanity. Supprime le cookie sanity-preview et redirige vers la page /welcome. UtilisĂ© pour quitter le mode preview.
1.2. Objectif
Section titled â1.2. Objectifâ- DĂ©sactiver le mode preview
- Supprimer le cookie sanity-preview
- Rediriger vers la page welcome
1.3. Caractéristiques
Section titled â1.3. CaractĂ©ristiquesâ| PropriĂ©tĂ© | Valeur |
|---|---|
| URL publique | /api/exit-preview |
| Mode de rendu | SSR |
| Type | Endpoint API (Redirect) |
| Méthode HTTP | GET |
| Authentification requise | Non |
| Cache | No-store |
2. Architecture et flux
Section titled â2. Architecture et fluxâ[RequĂȘte utilisateur] â âŒ[Endpoint /api/exit-preview] â âą Suppression du cookie sanity-preview âŒ[Redirect (307)] â âŒ[Page /welcome] â âą Rendu avec perspective published2.2. Composants impliquĂ©s
Section titled â2.2. Composants impliquĂ©sâ| Composant | RĂŽle | Couche |
|---|---|---|
api/exit-preview.ts |
DĂ©finition de lâendpoint | L2 (Astro) |
| Pages avec preview | Consommatrices du cookie | L2 (Astro) |
3. Implémentation
Section titled â3. ImplĂ©mentationâ3.1. Code de lâendpoint
Section titled â3.1. Code de lâendpointâimport type { APIRoute } from 'astro';
export const prerender = false;
export const GET: APIRoute = async ({ cookies, redirect }) => { // Suppression du cookie de preview cookies.delete('sanity-preview', { path: '/', });
return redirect('/welcome', 307);};4. DonnĂ©es et requĂȘtes GROQ
Section titled â4. DonnĂ©es et requĂȘtes GROQâAucune requĂȘte GROQ nâest utilisĂ©e dans cet endpoint.
5. ParamĂštres et validation
Section titled â5. ParamĂštres et validationâ5.1. Query strings
Section titled â5.1. Query stringsâAucune query string nâest utilisĂ©e.
5.2. Gestion des erreurs
Section titled â5.2. Gestion des erreursâ| Code HTTP | Condition | RĂ©ponse |
|---|---|---|
| 307 | SuccĂšs | Redirect vers /welcome |
6. Stratégie de cache
Section titled â6. StratĂ©gie de cacheâ6.1. En-tĂȘtes de cache
Section titled â6.1. En-tĂȘtes de cacheâ| Mode | Cache-Control |
Rationale |
|---|---|---|
| API (redirect) | Non configuré | à configurer (no-store recommandé) |
6.2. ImplĂ©mentation dans lâendpoint
Section titled â6.2. ImplĂ©mentation dans lâendpointâNon implĂ©mentĂ© - pas de headers de cache explicites.
7. SEO et métadonnées
Section titled â7. SEO et mĂ©tadonnĂ©esâNon applicable (endpoint API).
8. Composants UI utilisés
Section titled â8. Composants UI utilisĂ©sâAucun composant UI nâest utilisĂ© (endpoint API).
9. Sécurité
Section titled â9. SĂ©curitĂ©â9.1. AccĂšs et authentification
Section titled â9.1. AccĂšs et authentificationâ| Condition | Comportement |
|---|---|
| AccĂšs public | Endpoint accessible sans authentification |
9.2. Validation des entrées
Section titled â9.2. Validation des entrĂ©esâNon applicable (pas de paramĂštres dâentrĂ©e).
9.3. En-tĂȘtes de sĂ©curitĂ©
Section titled â9.3. En-tĂȘtes de sĂ©curitĂ©âNon implĂ©mentĂ© dans cet endpoint (Ă configurer via Middleware Cloudflare).
10. Débogage et troubleshooting
Section titled â10. DĂ©bogage et troubleshootingâ10.1. ProblĂšmes courants
Section titled â10.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Cookie non supprimé | Erreur de configuration | Vérifier les options du cookie |
10.2. Logs et monitoring
Section titled â10.2. Logs et monitoringâ# Logs de dĂ©veloppementnpm run dev
# Logs Cloudflare (production)wrangler tail10.3. Tests manuels
Section titled â10.3. Tests manuelsâ# Test de l'endpoint en localcurl -I http://localhost:4321/api/exit-preview11. Bonnes pratiques
Section titled â11. Bonnes pratiquesâ11.1. Architecture
Section titled â11.1. Architectureâ- â Suppression sĂ©curisĂ©e du cookie
- â Redirect 307 (temporary)
11.2. Performance
Section titled â11.2. Performanceâ- â Pas de traitement lourd
11.3. Maintenance
Section titled â11.3. Maintenanceâ- â VĂ©rifier que le cookie est bien supprimĂ©
12. Ăvolutions et roadmap
Section titled â12. Ăvolutions et roadmapâ12.1. AmĂ©liorations planifiĂ©es
Section titled â12.1. AmĂ©liorations planifiĂ©esâ- Configuration des headers de cache (no-store)
12.2. Limitations connues
Section titled â12.2. Limitations connuesâ- â Headers de cache non configurĂ©s
13. Ressources liées
Section titled â13. Ressources liĂ©esâ- Documentation Astro : Endpoints
- Fichiers concernés :
src/pages/api/exit-preview.tssrc/pages/api/preview.ts
14. Historique des modifications
Section titled â14. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-15 | 1.0 | Création initiale | Devin |