2015-03-19 4 views
0

У меня есть существующий домен, контроллер, вид (автоматически сгенерированный для последнего), который работает как ожидается в браузере. Он также работает в curl, если у меня есть URL-адрес .../user/show/1 или .../user/show, т.е. я использую действие, которое противоречит принципам REST. Итак, я добавил к URLMappings файлGrails, распространяющийся с помощью Rest

"/rest/user/$id?"(resource: "user") 

, который использует автогенерируемая контроллер. Теперь работает с curl и .../rest/user/1, но не .../rest/user - он запускает метод show, а не индексный метод. Но .../пользователь переходит к индексу и возвращает список. Несмотря на то, что браузер продолжает работать, я заметил, что URL-адреса относятся к классу отдыха/пользователя.

Так что у меня такое чувство, что я этого не понимал. Могу ли я иметь два правила в файле URLMappings, которые указывают на одно и то же место? Согласно документам Grails 2.4.4, url без id будет использовать метод index() еще ..../rest/user is not - он выводит show().

У меня есть работы, но я уверен, что я не сделал это правильно.

С уважением, Джон

ответ

0

Я думаю, что Grails создает успокоительный UserController для вашего домена. Но если у вас уже есть UserController, используется ваш собственный контроллер. Вы должны сделать это RESTFul. Взгляните на 9.1.5.1 Extending the RestfulController super class

Также попытайтесь создать urlmapping вашего контроллера manaully.

+0

Значит, документы на самом деле не создаются? Выбор заключается в доступе к домену через REST или через браузер, если я хочу, чтобы он был автоматическим? – John

+0

Я сделал это с двумя разными контроллерами. Один для REST и другой для Web. И я создал сопоставление для каждого контроллера. Если у вас уже есть UserController for Web, попробуйте переименовать его в UserWebController и создайте для него URL-адрес. Я думаю, что Grails пытается использовать UserController как RESTful, но он не RESTful или не так ли? Я думаю, что Grails нужен RESTful Controller, чтобы сделать ваш домен доступным, и если у вас его уже нет, grails создаст его для вас или воспользуется некоторым стандартным контроллером RESTful. Но у вас уже есть один UserController. – CyberAleks

+0

Взгляните на Grails RestFulController. Это шаблон для RestFulController. Ctrl + Shift + T и введите RestFulController в редакторе. – CyberAleks

Смежные вопросы