Sto scrivendo un'API HTTP su un server di pubblicazione e voglio risorse con rappresentazioni in più lingue. Un utente il cui cliente ottiene una risorsa che ha coreano, giapponese e trad. Le rappresentazioni cinesi e invia Accept-Language: en, ja;q=0.7
dovrebbero ottenere il giapponese.
Una risorsa, identificata da un URI, avrà quindi un numero di rappresentazioni linguistiche differenti. Questo mi sembra un uso totalmente ortodosso della negoziazione del contenuto e di rappresentazioni multiple di risorse.
Ma quando ogni traduttore arriva a fornire queste rappresentazioni linguistiche alternative al server, qual è il modo corretto di istruire il server su quale lingua memorizzare la rappresentazione? Sto facendo tradurre i traduttori nella sua interezza allo stesso URI, ma non riesco a scoprire come farlo in modo elegante. Content-Language
è un'intestazione di risposta e nessuna delle intestazioni di richiesta sembra adattarsi alla fattura.
Sembra che le mie opzioni siano
- Inventa una nuova richiesta di intestazione
- Fornisci metadati aggiuntivi in un documento multipart / correlato
- Fornisci la lingua come parametro per il
Content-Type
della richiesta, comeContent-Type: text/html;language=en
Non voglio entrare nel business dell'estensione di HTTP, e non mi sento particolarmente a mio agio nel mettere insieme metadati extra nella rappresentazione. Né l'approccio sembra amichevole con le cache HTTP. Quindi l'opzione 3 sembra il modo migliore a cui possa pensare, ma anche in questo caso è decisamente fuori standard inserire i miei parametri specifici su un tipo di contenuto ben definito.
Esiste un modo per raggiungere questo obiettivo?