Come annidare gli URL del plug-in?
-
11-12-2019 - |
Domanda
Vorrei creare un "shell" di un progetto Graal che ospita la funzionalità nei plugin, con gli URL segregati dal nome del plug-in.
Quindi gli URL per un blog Plugin utilizzato nel progetto Shell potrebbe essere simile a /shell/blog/viewBlogPost
Ma quello che sto vedendo in realtà è tutti i controller dei plugin si comportano come se fossero parte del progetto Shell stesso: /shell/viewBlogPost
C'è un modo per dichiarare che i controller del plubin del blog siano accessibili solo con un percorso /blog
nell'URL?
Soluzione
Sembra che i plugin di Grails non siano in grado di farlo.Il problema è che mancano di incapsulamento e composizione, portando a conflitti di artefatto:
- .
- L'instradamento URL dai plugin è semplicemente unito insieme e non può essere annidato
- I controller non sono noci (/ li>
- I servizi non sono noci (/ li>
Ho aperto un problema: grails-9300
Il team Graals ha Piani tecnico per affrontare questo in 2.2,Utilizzando il nome del plugin come spazio dei nomi per gli artefatti.
Altri suggerimenti
Sì, i tuoi plugin possono registrare i mapping URL proprio come il resto della tua applicazione "Shell" può.
È possibile dichiarare urlmappings in un plugin creando un file con un nome che termina nelle urlmapping nel plugin (ad esempio BlogPluginUrlMappings.groovy
) e questi saranno fusi nelle urlmapping dell'applicazione principale.È possibile impostare i mappature a partire da /blog/
per indirizzare i controller del plug-in.