Клиент REST Grails Groovy не может разрешить класс RestClientBuilder
У меня есть пустой проект, созданный с использованием GGTS, мое приложение работает нормально, я могу видеть представления и хорошо перемещаться по ним.
Мне нужно con вызвать REST API и использовать предоставленные данные, я прочитал и добавил необходимый плагин в файл BuildConfig под зависимостями, а затем в разделе плагинов, ни один из них, кажется, не работает.
compile ":rest-client-builder:2.0.0"
Я создал контроллер, я не уверен, где добавить импорт, поэтому я попытался:
package myapp
class UserController {
def index() {
import grails.plugins.rest.client.RestBuilder
String url = "https://foo.com/batch/$id"
def resp = new RestBuilder().get(url) { header 'Authorization', 'Basic base64EncodedUsername&Password' }
render resp
}
но я получаю ошибку: невозможно разрешить класс....
API возвращает данные JSON, я до сих пор делал только для создания нового проекта Grails, добавления контроллера, добавления представления и затем зависимости.
Я несколько раз чистил встроенный проект, но ошибка остается.
Спасибо за вашу помощь.
2 ответа
Импорт идет наверх
После пакета
И до линии класса
Также, в зависимости от вашей версии grails, вы можете захотеть переместить ggts... Не уверен, что это больше поддерживается...
Я думаю, что проблема в вашем определении зависимости build.gradle.
Вставьте следующую строку в ваш файл build.gradle, и я думаю, что это будет полезно:
compile "org.grails.plugins:rest-client-builder:2.1.1"
Для получения дополнительной информации следуйте документации плагина Grails.
Помните, что вся бизнес-логика должна быть размещена на уровне сервиса, а не в контроллере. Лучше всего, чтобы ваш контроллер был худым, насколько это возможно.
Еще одна лучшая практика - определить следующую строку:
String url = "https://foo.com/batch/$id"
в начале контроллера как статическая финальная строка
static final String url = "https://foo.com/batch/"
и добавьте $id, когда это необходимо в коде.
Вот как это должно быть вызвано внутри метода:
String url = "${url}/{$id}"