Aller au contenu

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.