Клиент 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}"
Другие вопросы по тегам