grails v3.3.9
Я бы мог использовать каркасные представления / контроллеры, но держу эти отдельно от моих остальных представлений API и контроллеров.
IЯ запустил приложение моего проекта для генерации jsonApi, поэтому я настроил свои UrlMappings примерно так:
...
"/api/sites"(resources:'site') {
"/devices" (resources:'device')
} ...
Затем я создал свой RestfulController в grails-app / controllers, и соглашение по умолчанию предполагает, что вашим контроллером будет SiteController, а затемвы редактируете grails-app / views / site с вашими шаблонами gson для рендеринга остальных.пока все хорошо.
Теперь вы можете попробовать представления в скаффолдах - и настройки платформы по умолчанию начинают разрушаться.
Я создал новую запись в UrlMappings, подобную этой, чтобы направить пользовательский интерфейс в свой собственныйконтроллер
"/ui/sites/$action?/$id?" (controller:"siteUI") {
constraints {
// apply constraints here
}
}
затем вы можете создать новый контроллер, подобный этому
class SiteUIController {
static scaffold = x.y.z.Site
}
, запустить приложение и получить доступ в браузере как / ui / sites - и он отобразит список сайтов,
однако две насущные проблемы
1) у моего сайта есть ссылка на домен Org (единственная ссылка) (с toString ()), и если я посмотрю на созданную ссылку, ссылка выглядит так, (где каким-то образом внутреннее устройство сгенерировало ссылку на контроллер остальных API, а не на контроллер HTML.) Ссылка Org
http://localhost:8080/api/orgs/1
2) у моего сайта также есть местоположения (сайт имеет множество расположений) (пока еще не определено toString в этом домене).Когда вы смотрите на сгенерированную ссылку, это выглядит так.ссылка на местоположение
http://localhost:8080/location/show/2
, которая не является ни контроллером rest /, ни html!
Я попытался немного обмануть и сохранил свою конечную точку отдыха, а также создал сайт generate-controller, и generate-viewsСайт и не удалось поместить их в правильные каталоги (views / siteUI, controller / siteUI и т. Д.) И снова восстановить мои сохраненные конечные точки отдыха.
Это помогло немного, поскольку теперь я могу перейти к правильному представлениюнабрав URL в браузере, произнесите «/ ui / sites / show / 1» - и все будет хорошо.но ссылки, которые он отображает, не будут работать, так как все настройки по умолчанию неверны.
так что мне делать?пытаться изменить все «стандартные» допущения для лесов, логики представлений и т. д. огромная боль.Я не хочу туда идти.
Сначала я просто сделаю все строительные леса.заставить это работать, а затем добавить остальные контроллеры / представления позже?
Я не хочу смешивать пользовательский интерфейс с контроллерами отдыха, чтобы они могли работать отдельно и независимо, и любая игра с пользовательским интерфейсом не работаетиспортить / разбить остальные точки и наоборот
, прежде чем я исчезну в правильном старом беспорядке - я хотел бы получить некоторые рекомендации по лучшему подходу, чтобы отделить эти вещи, не нарушая все стандарты / логику платформы BAU в рамках- это слишком сложно для меня, чтобы справиться.
Советы по наилучшему подходу к этому сценарию были бы с благодарностью приняты.Я надеюсь, что кто-то был здесь и придумал лучший способ продолжить.