API Exit Preview
API Exit Preview
Documentation technique
Type de ressource : Route Astro (Endpoint API)
Fichier source :src/pages/api/exit-preview.ts
Statut : Actif
1. Vue d’ensemble
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
- Désactiver le mode preview
- Supprimer le cookie sanity-preview
- Rediriger vers la page welcome
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
[Requête utilisateur] │ ▼[Endpoint /api/exit-preview] │ • Suppression du cookie sanity-preview ▼[Redirect (307)] │ ▼[Page /welcome] │ • Rendu avec perspective published2.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
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
Aucune requête GROQ n’est utilisée dans cet endpoint.
5. Paramètres et validation
5.1. Query strings
Aucune query string n’est utilisée.
5.2. Gestion des erreurs
| Code HTTP | Condition | Réponse |
|---|---|---|
| 307 | Succès | Redirect vers /welcome |
6. Stratégie de cache
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
Non implémenté - pas de headers de cache explicites.
7. SEO et métadonnées
Non applicable (endpoint API).
8. Composants UI utilisés
Aucun composant UI n’est utilisé (endpoint API).
9. Sécurité
9.1. Accès et authentification
| Condition | Comportement |
|---|---|
| Accès public | Endpoint accessible sans authentification |
9.2. Validation des entrées
Non applicable (pas de paramètres d’entrée).
9.3. En-têtes de sécurité
Non implémenté dans cet endpoint (à configurer via Middleware Cloudflare).
10. Débogage et troubleshooting
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
# Logs de développementnpm run dev
# Logs Cloudflare (production)wrangler tail10.3. Tests manuels
# Test de l'endpoint en localcurl -I http://localhost:4321/api/exit-preview11. Bonnes pratiques
11.1. Architecture
- ✅ Suppression sécurisée du cookie
- ✅ Redirect 307 (temporary)
11.2. Performance
- ✅ Pas de traitement lourd
11.3. Maintenance
- ✅ Vérifier que le cookie est bien supprimé
12. Évolutions et roadmap
12.1. Améliorations planifiées
- Configuration des headers de cache (no-store)
12.2. Limitations connues
- ❌ Headers de cache non configurés
13. Ressources liées
- Documentation Astro : Endpoints
- Fichiers concernés :
src/pages/api/exit-preview.tssrc/pages/api/preview.ts
14. Historique des modifications
| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-15 | 1.0 | Création initiale | Devin |