simone-di-paolo / aem-boilerplate

The starting project for AEM.
Apache License 2.0
0 stars 0 forks source link

EVO - 10 - Search Servlet logic #28

Closed simone-di-paolo closed 2 hours ago

simone-di-paolo commented 3 days ago

Questo esercizio riguarda lo sviluppo di una logica di search tramite una Servlet.

I punti da sviluppare sono i seguenti:

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:

{
    "searchedBy": "{parametroDiRicerca}: + {"valoreDelParametroDiRicerca}",
    "results": [
        {
            "bookName": "{bookName}",
            "bookDescription": "{bookDescription},
            "bookPagePath": "{pagePath}"
        },
        {
            "bookName": "{bookName}",
            "bookDescription": "{bookDescription},
            "bookPagePath": "{pagePath}"
        }
    ]
}

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

simone-di-paolo commented 3 days ago

Corretto il nome del componente da sviluppare nella traccia da articlePage in bookPage.