У меня есть API <> Архитектура SPA.Лучшая практика обработки ошибок API с угловым переводом
Но я точно не знаю, куда отправлять переводы, особенно когда отправляются ошибки.
Я бы предпочел просто перевести текст (i18n и т. Д.) В свое угловое приложение. API должен отправлять только английские тексты.
Но я не знаю, как
Представьте себе сообщение об ошибке, как это: (nodejs + restify)
server.get('/api/', function (req, res, next) {
return next(new server.errors.UnauthorizedError('You are not authorized'));
});
Это направит 401 с JSON в теле.
Если API говорит только по-английски, как я могу перевести его в лучшем случае в SPA?
Как я могу поместить это, один из этих переводов подходов:
<span>{{message | translate}}</span>
или
<span>{{lang.message}}</span>
Конечно я использую $ translateProvider в угловом и имею местонахождение файлов с переводом в нем.
Нет другого способа, посылая языковые ключи? Как это:
server.get('/api/', function (req, res, next) {
return next(new server.errors.UnauthorizedError('NOT_AUTHORIZED_ERROR'));
});
С этим я мог бы определить местонахождение-en.json файл как:
{
errors: {
NOT_AUTHORIZED_ERROR: "You are not authorized"
}
}
я нахожу этот вид редко.
Спасибо за ответ. Оба клиента и api разрабатываются одной командой. Мне не нравится второй вариант, потому что api должен знать язык клиентов, и мне придется реализовать файлы локализации в обоих местах: клиент и api. К сожалению, я должен создать ошибки, подобные этому, с помощью restify: 'next (new server.errors.UnauthorizedError ({body: {code: 'my_unauthorized_code', message: 'Вы не авторизованы'}})); ' Кроме того, есть ошибки проверки мангуста, с которыми мне приходится обращаться: -/ – Stefan
Используя первый вариант, быть моим предпочтением. Просто убедитесь, что у вас есть резерв для любого неизвестного кода ошибки, например. внедрить фильтр errorcodetranslate, который отображает общее сообщение об ошибке, если код неизвестен. – fikkatra