RESTful API: Как да се справя с преведени текстови полета в представяния?

Проектирам RESTful API за приложение за резервация. Има места за настаняване, за които можете да поискате списък или подробности. Тъй като приложението е насочено към многоезична аудитория, описанията (понякога) са налични на различни езици.

Сега не съм сигурен как да се справя с тези преводи в представянето на настаняване. Без множеството езици бих направил "описание" поле или обект за настаняване, доста просто.

Някаква идея как да се реши това елегантно?

Текущата ми идея: Добавете списък с описания с двойки текст‹->култура вместо полето за описание и допълнителен подресурс /descriptions към мястото за създаване (POST), актуализиране (PUT) и изтриване (DELETE) на нови преводи.


person janpio    schedule 22.04.2010    source източник


Отговори (1)


За извличане на представянията на съответния език вие просто задавате HTTP заглавката Accept-Language.

Искане:

GET /Hotel/345
Accept-Language: fr

Отговор:

<Hotel>
  <Description xml:lang='fr'>Ce edifice est magnifique</Description>
</Hotel>

За извършване на актуализациите можете просто да включите няколко елемента на описание, ако приемем, че използвате xml като формат на тип медия.

Искане:

PUT /Hotel/345

<Hotel>
  <Description xml:lang='en'>This building is magnificent</Description>
  <Description xml:lang='fr'>Ce edifice est magnifique</Description>
</Hotel>
person Darrel Miller    schedule 22.04.2010
comment
Благодаря, това е, на което се надявах, но има изискване за предоставяне на описанието на няколко езика, Accept-Language не е опция. Вашият XML обаче изглежда добре, не трябва ли да има ‹Описания› около двете описания? - person janpio; 22.04.2010
comment
Не е необходимо да има елемент Описания, съдържащ единичните Описания, това зависи изцяло от вас. Ако не искате да използвате Accept-Language, GET може да върне същия документ, който използвах за PUT. По този начин можете да върнете толкова езици, колкото искате. - person Darrel Miller; 22.04.2010