RequestOptions¶
RequestOptions décrit un appel précis. Il ne doit pas recopier toute la configuration globale.
| Option | Défaut | Effet | À utiliser quand | À éviter si |
|---|---|---|---|---|
query |
{} |
Sérialise les valeurs string, number, boolean; ignore null et undefined. |
Pagination, filtres, tri, flags simples. | Objets imbriqués sans format documenté par le backend. |
headers |
{} |
Fusionnés après defaults.headers; remplacent les mêmes noms. |
If-Match, Prefer, X-Request-Source. |
Headers auth globaux : utiliser auth ou noAuth. |
json |
undefined |
Sérialise en JSON, ajoute content-type et accept si absents. |
DTO, commandes, payloads API classiques. | Avec body dans la même requête. |
body |
undefined |
Transmis brut à fetch. |
FormData, Blob, ArrayBuffer, URLSearchParams. |
Objet JS simple qui devrait passer par json. |
signal |
undefined |
Combine l'annulation externe avec le timeout interne. | Route Angular détruite, recherche remplacée, action annulable. | Signal déjà aborted. |
timeoutMs |
defaults.timeoutMs |
Override le timeout pour cet appel. | Export long ou recherche courte. | Masquer un endpoint trop lent sans suivi. |
cache |
Aucun cache | Active lecture/écriture cache sur GET uniquement. |
Listes, référentiels, détails stables. | Mutations ou données sensibles. |
dataSchema |
Aucun schéma runtime | Valide data après parsing. |
Frontières critiques : droits, paiement, config distante. | Confondre types TypeScript et validation runtime. |
notifier |
Notifier du client | Remplace le notifier global pour cet appel. | Zone silencieuse ou endpoint critique. | Mélanger des politiques sans raison visible. |
noAuth |
false |
Désactive auth et refresh pour la requête. | Login, refresh, health, assets publics. | Contourner une 401 sur une route protégée. |
idempotencyKey |
undefined |
Identifie une mutation rejouable. | Création, paiement, opération sensible, double clic. | Générer une nouvelle clé à chaque retry de la même opération. |
Exemple cache + validation¶
const result = await api.get<User[]>("/users", {
query: { page: 1, active: true },
cache: {
ttlMs: 60_000,
tags: ["users"],
policy: "networkFirst"
},
dataSchema: userListSchema
});
Cache et méthodes HTTP
Le cache HTTP Guardian est une optimisation de lecture. Poser cache sur POST, PUT, PATCH ou DELETE ne transforme pas la mutation en stockage applicatif.