2016-11-29 3 views

ответ

4

Там нет ничего в

/convert?from=EUR&to=CNY&amount=100 

что не RESTful. Вы можете сказать, что это идентифицирует ресурс REST.

Но это выглядит как RPC (удаленный вызов процедур) по HTTP, который в случаях, не простых, как конвертация валют, приведет к системе, которая не является RES RES.

Всегда спрашивайте себя: какие у меня ресурсы?

Один ответ может быть: Ресурс - это конверсия результат, указанный двумя валютами и суммой. Тогда это будет выглядеть более RESTful, если вы используете

/conversion?from=EUR&to=CNY&amount=100 

Обратите внимание, что путь является Nown (conversion), а не глагол (convert). В общем случае, если вы можете назвать ресурс REST с ожидаемым, вы на правильном пути.

Это вопрос вкуса, если вы поместите идентификационные биты в параметры запроса (?from=EUR&to=CNY&amount=100) или на пути. Вы можете использовать

/conversion/EUR/100/CNY 

с использованием трех параметров тракта:

/conversion/{FROM}/{AMOUNT}/{TO} 
0

Преобразование

Ваш API выглядит хорошо для меня:

/convert?from=EUR&to=CNY&amount=100 

Lutz Hom-answer также дает хорошую альтернативу.

Вычислить

Если API должен обрабатывать сложные или длительные операции, это может быть хорошей идеей использовать POST:

/calculate 

Вы можете включить вычисление в запросе. Это избавит вас от длительных вычислений в вашем URL-адресе.

Если API должен обрабатывать простые операции, то вы можете использовать эту конструкцию:

/calculate/add/?param1=value1&param2=value2 

Аналогично для subtract, multiply, divide и т.д.

/calculate/subtract 
/calculate/multiply 
/calculate/divide 

Перевести

Для перевода , Мне нравится API-интерфейс Google Translate:

/translate/{source}/{target}/value 

Здесь source - это ваш родной язык (скажем EN) и target - ваш целевой язык (скажем, HI).

В конце концов, ваш дизайн API подходит к вашему выбору.

+0

«Вы можете включить расчет в запрос». Это будет RPC, а не REST. Что такое ресурс REST в этом случае? –