Non ho trovato questo ovunque - posso dire Play! che un metodo specifico del controllore dovrebbe (solo) essere accessibile tramite HTTP POST?Posso contrassegnare un metodo di controllo come POST in riproduzione usando le annotazioni?
Qualcosa come lo HttpPost attribute in Asp.Net MVC di C#?
public class MyController extends Controller {
@Post
public void addPerson(String name, String address) {
}
}
Aggiornamento - Non capisco che cosa l'aggiunta di un percorso POST fare:
- richiesta Un POST funziona senza l'aggiunta di un tale percorso.
- Poiché il metodo viene ancora catturato dalla regola GET "Catch all", anche l'aggiunta della route POST non impedirà le richieste GET a questo metodo.
È necessario rimuovere * catch all se si desidera accedere al metodo solo tramite POST. Quello che cattura tutto dovrebbe essere usato solo per lo sviluppo comunque. Aiuta anche a vedere esattamente cosa stai esponendo! – mericano1
@ mericano1: il catch all è ottimo per seguire l'idioma della Convenzione rispetto alla configurazione, non penso che sia dannoso per la produzione (altrimenti mi limiterò a duplicare gli elenchi di controller/azioni lì ... più manutenzione). Immagino che invierò una richiesta di funzionalità. – ripper234
Pubblicato un ticket: https://play.lighthouseapp.com/projects/57987-play-framework/tickets/1260-ability-to-mark-controller-methods-as-post-by-annotation – ripper234