Ich habe eine API <> SPA-Architektur.Best Practice für die Behandlung von API-Fehlern mit Winkel translate
Aber ich weiß nicht genau wo Übersetzungen zu setzen, besonders wenn Fehler gesendet werden.
Ich hätte lieber nur übersetzten Text (i18n etc) in meiner eckigen App. Die API sollte nur englische Texte senden.
Aber ich weiß nicht, wie man
eine Fehlermeldung wie diese Stellen Sie sich vor: (NodeJS + restify)
server.get('/api/', function (req, res, next) {
return next(new server.errors.UnauthorizedError('You are not authorized'));
});
Dies wird ein 401 mit json in Körper senden.
Wenn die API nur Englisch spricht, wie kann ich sie am besten im SPA übersetzen?
Wie kann ich dies zu setzen, eine dieser Übersetzung Ansätze:
<span>{{message | translate}}</span>
oder
<span>{{lang.message}}</span>
Natürlich habe ich die $ translateProvider bei Angular verwenden und haben eine Dateien lokalisieren mit Übersetzung darin.
Gibt es keinen anderen Weg, Sprachschlüssel zu senden? Wie folgt aus:
server.get('/api/', function (req, res, next) {
return next(new server.errors.UnauthorizedError('NOT_AUTHORIZED_ERROR'));
});
Damit konnte ich habe eine locate-en.json Datei wie:
{
errors: {
NOT_AUTHORIZED_ERROR: "You are not authorized"
}
}
ich diese Art von ungewöhnlich finden.
Danke für die Antwort. Sowohl Client als auch API werden vom selben Team entwickelt. Ich mag die zweite Option nicht, weil die API die Sprache des Clients kennen muss und ich Locate-Dateien an beiden Orten, Client und API implementieren muss. Leider muss ich solche Fehler mit restify erstellen: 'next (new server.errors.UnauthorizedError ({body: {code: 'mein_unerlaubter_code', nachricht: 'Sie sind nicht autorisiert'}})); ' Zusätzlich gibt es noch Mungo-Validierungsfehler, die ich ebenfalls behandeln muss: -/ – Stefan
Die erste Option würde verwendet werden sei meine Vorliebe. Stellen Sie sicher, dass Sie einen Fallback für einen unbekannten Fehlercode haben, z. Implementieren Sie einen 'errorcodetranslate' Filter, der eine generische Fehlermeldung anzeigt, falls der Code unbekannt ist. – fikkatra