Чтобы направить запрос REST на ваш контроллер, вам нужно изменить файл UrlMappings.groovy для обработки запросов в соответствии с синтаксисом, аналогичным тому, который вы хотите отправить.Запрос REST для нескольких двух чисел может выглядеть как example.com/multiply/5/6
, и в результате вы получите 30 обратно.Чтобы Grails отправил запрос на это в метод calc вашего CalculatorController, вы должны добавить такую строку в свой UrlMappings.groovy:
"/multiply/$first_nr/$second_nr"(controller:"calculator", action:"calc")
Или, если вы хотите поддерживать другие операции, такие как вычитание, добавьте и т. д., вы хотите создать методы с именем для каждого из них, а затем поместить $ action вместо multiply в отображении, например:
"/$action/$first_nr/$second_nr"(controller:"calculator")
или даже переместить контроллер вURL для максимальной расширяемости:
"/$controller/$action/$first_nr/$second_nr"{}
Это перенаправит ваш запрос, как вы хотите, на соответствующее действие с соответствующими параметрами, заполняемыми для вашего метода контроллера.Вы также можете использовать закрытие withFormat в своем контроллере для отправки результата в различных форматах (XML, JSON, HTML) в зависимости от запрошенного типа контента (см. Документацию grails для получения дополнительной информации об использовании withFormat).
Я не уверен, что ты имеешь в виду под классом для отправки запроса.Приложение может вызывать эту службу REST так же, как любая другая служба REST.Или вы ищете пример этого?Если это так, посмотрите на плагин клиентских средств REST *1014* для Grails.Вы также можете найти эту запись в блоге полезной для создания контроллеров REST и вызовов с помощью Grails.
ОБНОВЛЕНИЕ
Чтобы получить доступ к службе REST с помощью Groovy,попробуйте использовать расширение RESTClient HTTPBuilder (получите его на http://groovy.codehaus.org/modules/http-builder/doc/rest.html
). Затем вы можете позвонить в службу, например так:
import groovyx.net.http.RESTClient
def calculator = new RESTClient( 'http://example.com/myapp/' )
def resp = calculator.get( path : 'multiply/5/5' )
assert resp.status == 200
assert resp.data == "The result of the multiplication of 5 with 5 is 25"
Вы также можете найти больше информации о groovy и REST на другом stackoverflow вопрос .