REST и локализованные ресурсы - PullRequest
4 голосов
/ 16 ноября 2009

Я бы хотел, чтобы мои ресурсы были локализованы на несколько языков. Сколько языков должно быть размещено на ресурсе с использованием архитектуры REST?

ресурс: / главы, / главы /: идентификатор

Когда выдается POST для глав, клиент отправляет структуру данных:

{localizations: { en: {title: 'New chapter' },sk: {title: 'Nova kapitola'} }}

и создана новая глава с локализацией en и sk.

Когда клиент хочет получить доступ к этой главе по адресу URL / chapter / 1, в представлении должна быть возвращена только одна языковая мутация. Как мне реализовать локализацию? Я могу использовать HTTP-заголовок Accept-Language с желаемой локалью, Accept-Language: sk, или я могу включить локаль в URL, например /chapters/1/en.

Кроме того, как должен обрабатываться запрос PUT? В большинстве случаев обновляется только одна языковая мутация, но иногда обновляются 2 или более из них.

1 Ответ

1 голос
/ 16 ноября 2009

Для обновления данных язык должен быть предоставлен в полезной нагрузке данных, как вы описали. Это прекрасно работает.

Для выборки это зависит от того, хотите ли вы разрешить 1) возможность соединения и 2) клиентам изменять выбранный язык. Я бы сказал, что вы хотите и то, и другое - гораздо проще и предпочтительнее изменить URL-адрес или переключить язык в приложении, а затем переключиться в браузер и изменить настройки локали в браузере.

Итак, проверьте ваш URL, куки-файлы приложения или данные пользователя приложения для языка и используйте заголовки Accept-Language в качестве запасного варианта.

Я не понимаю вашего вопроса запроса PUT. Структура данных, которую вы описываете, отлично справится с несколькими языковыми обновлениями, не так ли? Вы можете обрабатывать PUT практически так, как вам хочется, при условии, что URL-адрес PUT остается адресуемым ресурсом.

...