Я пытаюсь создать службу имитационного отдыха. В основном это два компонента. Мне нужен контроллер с действиями и представлениями, который позволяет мне создавать ResourceMappings, где я создаю отображение между URI и ложным ответом, который я передам обратно. Второй компонент - это универсальное отображение URL-адресов Grails для каждого другого URL-адреса, так что при попадании в URI этого приложения они будут отправлены моему контроллеру catch all, который вернет отображенный ответ, созданный ранее.
Например ... я перехожу на URL http://someserver.com:1234/restMapping/list. Этот URL является исключением из правила catch all. Это подводит меня к некоторым представлениям, которые позволяют мне создать карту URI для отдыха. Здесь я создаю отображение / mockservice / test и даю ему ответ «Это тест» с типом содержимого text / plain. Теперь, если я перейду к URL-адресу http://someserver.com:1234/mockservice/test, я должен нажать кнопку «поймать все», которая отправляет меня в контроллер, который возвращает страницу с типом содержимого text / plain и ответом «Это тест».
Я попробовал следующее, и это не похоже на работу. У кого-нибудь есть идеи?
static mappings = {
"/$control/**" {
controller = "catchAllHandler"
action = "index"
constraints {
control(validator: {!['restMapping','css','js','images'].contains(it)})
}
}
"/$controller/$action?/$id?"{
}
"/"(controller:"restMapping", action="index")
"500"(view:'/error')
}
Интересно отметить, что когда я избавляюсь от ** и добавляю тонны дополнительных переменных, таких как $ s1? / $ S2? / $ S3? и т. д. тогда, кажется, работает. Проблема в том, что я не знаю, как долго ури пытается отобразить карту, поэтому я предпочел бы использовать **, чтобы перехватить все исключения, за исключением тех немногих, которые у меня есть.