Internazionalizzazione API

2

Ho una domanda sull'architettura e vorrei conoscere la tua opinione.

Dato un prodotto formato da un'API e diversi consumatori (app Android, app iOS, app web ...), dove devo implementare i dati di risposta dell'API < strong> localizzazione ? Nell'API stessa o in ciascun consumatore? Quando faccio riferimento alla risposta dei dati intendo le date di formattazione, i numeri, le valute e gli errori di traduzione.

Credo che localizzare quel tipo di dati nell'API stessa, avendo in mente standard adeguati come ISO 639 o intestazione HTTP "Accept-Language", dovrebbe essere la strada da seguire per migliorare la coerenza tra tutti i consumatori. Questo approccio mi fa pensare a due problemi principali:

  1. Aumentare il lavoro dell'API potrebbe comportare problemi di prestazioni se il prodotto scala.
  2. Sarà un mal di testa quando si tenta di manipolare i dati di risposta dell'API nei consumatori e si può ridurre l'ambito di azione dei consumatori. Illustriamo questo : il consumatore è un'applicazione Javascript con le impostazioni internazionali impostate su "spagnolo". Richiede che API e API rispondano con un float formattato (ad esempio "1.300,21"). Il JS deve generare un grafico usando tale float, ma fallirà a causa delle migliaia e dei separatori decimali.

Che ne pensi? Come lo risolveresti?

    
posta Nove 30.06.2018 - 20:03
fonte

1 risposta

4

La parte di localizzazione della tua logica aziendale principale o solo parte dell'interfaccia utente?

  • Contenuti dei messaggi, fusi orari, formati numerici: quelli probabilmente fanno parte dell'interfaccia utente. Dovrebbero essere applicati il più tardi possibile, cioè nell'app e non già nell'API. La tua API dovrebbe probabilmente fornire questi valori in un formato normalizzato, ad es. UTC per i timestamp.

  • Le conversioni valutarie di solito non sono solo estetiche. Sono spesso parte della tua logica aziendale. Potrebbe esserci un'enorme differenza tra $ 5 e € 5. Quindi qui la tua API non può fornire un formato canonico e deve trattare ogni valuta in modo diverso.

risposta data 30.06.2018 - 20:18
fonte

Leggi altre domande sui tag