Grails URL Api Mapping вызывает неправильный контроллер

У меня два контроллера. Контроллер опроса и API.PollApiController.

Мой PollController — это обычный контроллер. API-контроллер наследует RestfulController:

class PollApiController extends RestfulController {

    static responseFormats = ['json', 'xml']

    PollApiController() {
        super(Poll)
    }
}

Это мои URL-сопоставления:

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?(.$format)?"{
            constraints {
                // apply constraints here
            }
        }

        "/api/poll"(resources:'poll', controller:'pollApiController')
    }
}

Моя проблема в том, что каждый раз, когда я делаю /api-Call, Grails запускает PollController вместо PollApiController. Я могу проверить это, если изменю PollController. Я впервые работаю с RestfulController, что я делаю не так?


person Peter Pawn    schedule 22.10.2014    source источник


Ответы (1)


Когда вы сопоставляете с RestfulController, вам не нужен параметр controller. Вместо этого resources следует установить на базовое имя вашего (Restful) контроллера.

"/api/poll"(resources: 'pollApi')

Дополнительные сведения см. по адресу: http://grails.org/doc/latest/guide/single.html#restfulMappings

person Andrew    schedule 22.10.2014