Content Negotiation
Architecture 🟡 MidDéfinition
Mécanisme HTTP ou le client et le serveur se mettent d'accord sur le format de la réponse via les headers Accept et Content-Type.
Analogie
Commander dans un restaurant multilangue : tu demandes le menu en français, on te le donne en français.
Exemple de code
// Client
Accept: application/json
// Serveur
app.get('/users', (req, res) => {
if (req.accepts('json')) res.json(users);
else if (req.accepts('xml')) res.send(toXml(users));
else res.status(406).end();
});
Cas d'usage
APIs qui doivent supporter plusieurs formats (JSON, XML, CSV) pour différents clients.
Anti-pattern
En entretien
Qu'est-ce que la Content Negotiation en HTTP ?
C'est le mécanisme par lequel client et serveur se mettent d'accord sur le format de la réponse via les headers Accept et Content-Type, comme commander dans un restaurant multilangue en demandant le menu dans sa langue.
Quel est le piège fréquent dans son implémentation ?
Ignorer le header Accept et toujours renvoyer du JSON, ce qui dégrade l'expérience des clients qui attendent un autre format.
Fiche mise à jour le 2026-09-27