Questo esercizio riguarda lo sviluppo di una logica di search tramite una Servlet.
I punti da sviluppare sono i seguenti:
Creare un componente bookPage che estende il componente Page
il componente bookPage dovrà contenere le seguenti page properties:
author name (un semplice campo testuale)
date of publication (un date picker)
category (una select in cui si dovrà scegliere tra le seguenti categorie: Fantascienza, Thriller, Avventura e Azione, Romanzo Storico)
Creare un nuovo template che userà il nuovo resourceSuperType indicato poco prima e che avrà all'interno delle policy i seguenti componenti:
Header e Footer con il fragment variation path specificato sul path: language-masters/en/site/header/master
un container che permetterà l'aggiunta dei componenti core:
title
text
image
Creare almeno 5 pagine con il nuovo template sotto il nodo: /content/formazioneboilerplate/language-masters/en/books/ contribuendo sia le nuove custom page properties (in modo coerente) sia i componenti in pagina dando un titolo veritiero e una breve descrizione del libro.
La pagina books dovrà utilizzare il Template "Content Page".
Creare una Servlet da contattare in POST. Nel body della request bisognerà specificare un solo oggetto JSON con chiave "searchBy" e tre possibili parametri che potranno essere utilizzati per effettuare una ricerca all'interno del content appena creato:
1) authorName
2) date of publication: può contenere una data per cercare i book pubblicati "a partire da";
3) category
Di seguito i vari JSON di esempio che possono essere gestiti dalla Servlet:
{
"searchBy": "category#Azione"
}
{
"searchBy": "authorName#Fabio Genovesi"
}
{
"searchBy": "datePublish#2023-06-15"
}
La Servlet potrà essere contattata con un solo parametro per ogni request ma dovranno essere gestiti adeguatamente tutti e tre gestendo eventuali eccezioni che possono occorrere nella ricerca del contenuto.
Dovrà essere contattata in POST tramite selettore "bookFinder" (tramite Postman) e dovrà dare in response un JSON con i risultati filtrati per il parametro richiesto nel body.
Nel JSON in response si dovrà avere un risultato di questo tipo:
In caso di ricerca con zero risultati, il JSON dovrà essere restituito con il JsonArray"results" vuoto.
In caso di errori dovuti ad una request con un JSON non corretto, si dovrà restituire un JSON con un oggetto error ed un messaggio relativo all'errore scaturito.
Per la creazione del Json della response, utilizzare la libreria JsonObject/JsonElement/JsonArray di Gson.
Precisamente:
bookName dovrà essere preso dal primo componente "title" in pagina
bookDescription dovrà essere recuperato dal primo componente "text" in pagina
pagePath dovrà essere recuperato dal path della pagina trovata
Questo esercizio riguarda lo sviluppo di una logica di search tramite una Servlet.
I punti da sviluppare sono i seguenti:
Creare un componente bookPage che estende il componente Page
il componente bookPage dovrà contenere le seguenti page properties:
Creare un nuovo template che userà il nuovo resourceSuperType indicato poco prima e che avrà all'interno delle policy i seguenti componenti:
Creare almeno 5 pagine con il nuovo template sotto il nodo: /content/formazioneboilerplate/language-masters/en/books/ contribuendo sia le nuove custom page properties (in modo coerente) sia i componenti in pagina dando un titolo veritiero e una breve descrizione del libro.
La pagina books dovrà utilizzare il Template "Content Page".
Creare una Servlet da contattare in POST. Nel body della request bisognerà specificare un solo oggetto JSON con chiave "searchBy" e tre possibili parametri che potranno essere utilizzati per effettuare una ricerca all'interno del content appena creato: 1) authorName 2) date of publication: può contenere una data per cercare i book pubblicati "a partire da"; 3) category
Di seguito i vari JSON di esempio che possono essere gestiti dalla Servlet:
La Servlet potrà essere contattata con un solo parametro per ogni request ma dovranno essere gestiti adeguatamente tutti e tre gestendo eventuali eccezioni che possono occorrere nella ricerca del contenuto. Dovrà essere contattata in POST tramite selettore "bookFinder" (tramite Postman) e dovrà dare in response un JSON con i risultati filtrati per il parametro richiesto nel body.
Nel JSON in response si dovrà avere un risultato di questo tipo:
In caso di ricerca con zero risultati, il JSON dovrà essere restituito con il JsonArray"results" vuoto. In caso di errori dovuti ad una request con un JSON non corretto, si dovrà restituire un JSON con un oggetto error ed un messaggio relativo all'errore scaturito.
Per la creazione del Json della response, utilizzare la libreria JsonObject/JsonElement/JsonArray di Gson.
Precisamente:
Due date: 5-7-2024 alle ore 16:00