diff --git a/bibliography.bib b/bibliography.bib index da77682..071180d 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -54,4 +54,42 @@ year = "2018", url = "https://it.wikipedia.org/w/index.php?title=JavaScript_Object_Notation&oldid=94928405", note = "[Online; in data 9-aprile-2018]" +} +@online{wiki:crud, + author = "Wikipedia", + title = "Tavola CRUD --- Wikipedia{,} L'enciclopedia libera", + year = "2017", + url = "https://it.wikipedia.org/w/index.php?title=Tavola_CRUD&oldid=85784228", + note = "[Online; in data 1-maggio-2018]" +} +@online{wiki:orm, + author = "Wikipedia", + title = "Object-relational mapping --- Wikipedia{,} L'enciclopedia libera", + year = "2017", + url = "https://it.wikipedia.org/w/index.php?title=Object-relational_mapping&oldid=92163909", + note = "[Online; in data 1-maggio-2018]" +} +@online{maven:website, + title = "Maven – Welcome to Apache Maven", + author = "The Apache Software Foundation", + url = "https://maven.apache.org", + note = "[Online; in data 1-maggio-2018]" +} +@online{hibernate:website, + title = "Your relational data. Objectively. - Hibernate ORM", + author = "Red Hat, Inc.", + url = "https://hibernate.org/orm", + note = "[Online; in data 1-maggio-2018]" +} +@online{gson:website, + title = "GitHub - google/gson: A Java serialization/deserialization library to convert Java Objects into JSON and back", + author = "Google Inc.", + url = "https://github.com/google/gson", + note = "[Online; in data 1-maggio-2018]" +} +@online{jersey:website, + title = "Jersey", + author = "Oracle Corporation", + url = "https://jersey.github.io", + note = "[Online; in data 1-maggio-2018]" } \ No newline at end of file diff --git a/italian.pdf b/italian.pdf index 8821ea1..67694eb 100644 Binary files a/italian.pdf and b/italian.pdf differ diff --git a/main.tex b/main.tex index 0e83b5c..8039909 100644 --- a/main.tex +++ b/main.tex @@ -250,15 +250,16 @@ \subsubsection{\textit{restaurant} -- lato server} La libreria \textit{restaurant}\footnote{Il nome \textit{restaurant} è un gioco di parole sull'acronimo REST.} viene importata - come una normale dipendenza Maven \cite{maven:website}. Essa dipende da: + come una normale dipendenza Maven\cite{maven:website}. Essa dipende da: \begin{description} - \item[Hibernate ORM] un famoso Object/Relation Mapper \cite{wiki:orm} per - Java, utile ad interrogare il database \textit{PostgreSQL} con facilità; - \item[GSON] una libreria di Google per serializzare e deserializzare oggetti - Java in JSON; - \item[Jersey] un'implementazione dell'API JAX-RS per realizzare gli endpoint - REST. Ciò avviene senza servlet ma tramite semplici - metodi contenuti in classi senza ``padre'' dette \textit{controller}, + \item[Hibernate ORM\cite{hibernate:website}] un famoso Object/Relation + Mapper\cite{wiki:orm} per Java, utile ad interrogare il database + \textit{PostgreSQL} con facilità; + \item[GSON\cite{gson:website}] una libreria di Google per serializzare + e deserializzare oggetti Java in JSON; + \item[Jersey\cite{jersey:website}] un'implementazione dell'API JAX-RS + per realizzare gli endpoint REST. Ciò avviene senza servlet ma tramite + semplici metodi contenuti in classi senza ``padre'' dette \textit{controller}, opportunamente decorati con le annotazioni nel package \texttt{javax.ws.rs}. \end{description} @@ -266,7 +267,7 @@ Le operazioni richieste per interrogare la base di dati sono ulteriormente semplificate dal codice contenuto in \textit{restaurant} su due livelli: \begin{itemize} - \item È possibile eseguire normali operazioni di CRUD \cite{wiki:crud} + \item È possibile eseguire normali operazioni di CRUD\cite{wiki:crud} nonchè costruire manualmente query tramite i metodi statici della classe \textit{CRUDUtils}, che lavorano in input e in output con istanze delle classi ``entità''; @@ -343,7 +344,9 @@ public abstract class JsonProducer { Per una migliore lettura del listato \ref{lst:jsonprd-java}, si precisa che la classe \textit{Error} è una enumerazione Java contenente messaggi di errore standard. La classe \textit{ErrorDetails}, invece, permette al codice esterno - di realizzare messaggi di errore personalizzati. + di realizzare messaggi di errore personalizzati. Inoltre, l'oggetto statico + \texttt{GSON} di classe \textit{Gson} è il serializzatore a JSON offerto dalla + libreria omonima. \end{it} \begin{lstlisting}[caption=Interfaccia della classe \textit{ReadableRESTController}, label={lst:rdbrest-java}, language=Java]