Qualche mese fa, su HTML.it abbiamo pubblicato la guida: RESTful Web Services in Java con Jersey. In quest'articolo illustreremo alcuni spunti per approfondire tematiche utili alla realizzazione ed allo sviluppo di applicazioni RESTful create tramite il framework Java Jersey. Il punto di partenza per gli approfondimenti è sicuramente la guida ufficiale del framework che è possibile visionare al seguente link.
Logging
Durante lo sviluppo di un prodotto da esporre in Rete emergono tematiche legate al logging. Jersey supporta il log di request e response tramite la classe LoggingFeature che può essere configurata e registrata nella classe Application principale. Il framework sfrutta Java logging, quindi per adottare un sistema diverso di logging è possible ricorrere a SLF4J. Un'alternativa per evitare il bridge dei log consiste nello scrivere la propria classe di Log implementando i filtri ContainerRequestFilter, ContainerResponseFilter e WriterInterceptor.
Sicurezza
Un altro tema su cui ci si imbatte di nella progettazione di un sistema reale riguarda la sicurezza. Ancora una volta Jersey ci viene in aiuto con il SecurityContext grazie al quale è possibile mappare l'oggetto utente all'interno del framework. Una volta configurato correttamente è possibile, annotare i metodi della nostra API con l'annotation @RolesAllowed, ovvero, utilizzare direttamente i metodi messi a disposizione dalla classe SecurityContext per le verifiche del caso sugli utenti.
Testing
Nei capitoli della guida abbiamo rapidamente effettuato il testing dei nostri servizi con Jersey e Curl. Un'alternativa valida, consiste nell'utilizzare Postman, un plugin di Google Chrome che consente di effettuare richieste costruite da un'interfaccia visuale. Postman supporta anche la collaborazione, il salvataggio delle richieste per un utilizzo successivo e l'esportazione delle richieste.
Deploy
Nel nostro tutorial abbiamo sfruttato il deploy descriptor-less e Jetty come plugin di Maven. Come illustrato sulla guida ufficiale è possibile avvalersi di altri meccansimi di deploy su Servlet Container diversi implementando o meno la sottoclasse di Application a seconda delle esigenze di progetto. Jersey è già pacchettizzato con Glassfish, inoltre può essere usato anche su server Java EE con il supporto agli EJB.
Media Type
JSON è solo uno dei formati supportati tramite un meccanismo basato su moduli dei formati supportati dal framework e Moxy solo uno dei provider. Sono disponibili provider alternativi ufficiali e non per supportare diversi formati di dati.