Как мне организовать мой многоязычный REST API?
Я только начал создавать многоязычный REST API и не уверен, следует ли придерживаться какого-либо соглашения о том, как правильно интегрировать многоязычие.
Ниже приведен список альтернатив, которые я придумал, не зная, какой из них имеет смысл.
Опция 1:
Языковая переменная в URI: http://myapi.com/en/users/john
Вариант 2:
Возврат только кодов ошибок для клиентской стороны перевода: GET http://myapi.com/users/john => HTTP 404 {status: false, error_code: "321"}
Вариант 3:
Возврат на всех доступных языках: GET http://myapi.com/users/john => {status: false, error_en: "User not found", error_sv: "Anvandaren finns inte"}
1 ответ
Для согласования содержимого, как для согласования естественного языка представления, HTTP предоставляет заголовок запросаAccept-Language
:
Accept-Language: da, en-gb;q=0.8, en;q=0.7
Если возможно, сервер отвечает на этот запрос с заголовком ответаContent-Language
:
Content-Language: da
Только если ресурсы представляют собой разные ресурсы для разных языков, язык должен быть частью URI. Если нет, следует использовать согласование контента.