• Non ci sono risultati.

Categorie e Sottocategorie

Nel documento Catalogo Swiss Mooc Service (pagine 38-43)

2.3 Tecnologie utilizzate per la sicurezza

3.1.6 Endpoint REST

3.1.6.2 Categorie e Sottocategorie

A ogni corso presente nel sistema è possibile assegnare una categoria e una sottocate- goria. Questa operazione può essere compiuta dall’amministratore dell’organizzazione che propone il corso e dall’amministratore globale del sito. Oltre ad assegnare una categoria o una sottocategoria ad uno specifico corso, l’amministratore può creare nuove categorie e nuove sottocategorie, modificarle ed eliminarle. Queste operazioni sono effettuabili nella pagina di amministrazione del sito, navigando nella sezione Categories.

Nella pagina di discovery dei corsi è possibile quindi filtrare la ricerca in base ad una specifica categoria, in modo da semplificare l’utilizzo all’utente.

3.1.6.2.1 Recupero delle Categorie

L’applicativo recupera le categorie salvate nel database tramite il seguente endpoint:

GET /categories

La visione delle categorie deve essere accessibile ad ogni utente quindi non è necessario fornire alcun Authorization Token.

La risposta del server contiene la lista delle categorie presenti nel database, con relativi identificativi: [ { " i d ": CATEGORY_ID, " categoryName ": CATEGORY_NAME } , { " i d ": CATEGORY_ID, " categoryName ": CATEGORY_NAME } . . . ]

3.1.6.2.2 Aggiunta di una Categoria

Quando l’amministratore procede con l’inserimento di una nuova categoria, l’applicativo effettua la richiesta al seguente endpoint:

Tale richiesta può essere effettuata solo dall’amministratore globale in quanto solo egli può inserire nuove categorie; l’header della richiesta deve quindi contenere il token che identifica l’amministratore, come segue:

Authorization Bearer TOKEN

Il corpo della richiesta deve contenere il nome da assegnare alla nuova categoria e deve rispecchiare la seguente struttura:

{

" categoryName ": CATEGORY_NAME }

Se invece si tenta di inserire una categoria già presente nel database, il server ritornerà la seguente risposta:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 400 ,

" e r r o r ": " Bad Request " ,

" message ": " Category w i t h CategoryName ’CATEGORY_NAME’ a l r e a d y e x i s t s " ,

" path ": " / c a t e g o r i e s " }

Se infine l’aggiunta di una nuova categoria avviene con successo, la risposta conterrà la categoria appena creata.

3.1.6.2.3 Modifica di una Categoria

Quando l’amministratore effettua una modifica ad una determinata categoria, l’applicativo effettua la richiesta al seguente endpoint:

PUT /category/CATEGORY_ID

Tale richiesta può essere effettuata solo dall’amministratore globale in quanto solo egli può inserire modificare una categoria; l’header della richiesta deve quindi contenere il token che identifica l’amministratore, come segue:

Authorization Bearer TOKEN

Il corpo della richiesta deve contenere il nome da assegnare alla categoria e deve rispec- chiare la seguente struttura:

{

" categoryName ": CATEGORY_NAME }

Se si cerca di modificare una categoria non esistente, la risposta del server seguirà la seguente struttura:

32 Implementazione

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 404 ,

" e r r o r ": " Not Found " ,

" message ": " Category n o t found w i t h i d : CATEGORY_ID " ,

" path ": " / c a t e g o r y / CATEGORY_ID" }

Se invece si tenta di assegnare alla categoria un nome di una categoria già presente nel database, il server ritornerà la seguente risposta:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 400 ,

" e r r o r ": " Bad Request " ,

" message ": " Category w i t h CategoryName ’CATEGORY_NAME’ a l r e a d y e x i s t s " ,

" path ": " / c a t e g o r y / CATEGORY_ID" }

Se infine la modifica di una categoria avviene con successo, la risposta conterrà la categoria appena modificata.

3.1.6.2.4 Rimozione di una Categoria

Se l’amministratore decide di eliminare una categoria, l’applicativo effettua la richiesta al seguente endpoint:

DELETE /category/CATEGORY_ID

Tale richiesta può essere effettuata solo dall’amministratore globale in quanto solo egli può inserire eliminare una categoria; l’header della richiesta deve quindi contenere il token che identifica l’amministratore, come segue:

Authorization Bearer TOKEN

Se si cerca di eliminare una categoria non esistente, la risposta del server seguirà la seguente struttura:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 404 ,

" e r r o r ": " Not Found " ,

" message ": " Category n o t found w i t h i d : CATEGORY_ID " ,

" path ": " / c a t e g o r y / CATEGORY_ID" }

Se la cancellazione di una categoria avviene con successo, la risposta conterrà il messaggio “Category Deleted”.

3.1.6.2.5 Recupero delle Sottocategorie

L’applicativo recupera le sottocategorie appartenenti ad una determinata categoria tramite il seguente endpoint:

GET /category/CATEGORY_ID/subcategories

La visione delle sottocategorie deve essere accessibile ad ogni utente quindi non è neces- sario fornire alcun Authorization Token.

La risposta del server contiene la lista delle sottocategorie presenti nel database, con relativi identificativi e categoria da cui discende:

[ { " i d ": SUBCATEGORY_ID, " subcategoryName ": SUBCATEGORY_NAME, " c a t e g o r y ": { " i d ": CATEGORY_ID, " categoryName ": CATEGORY_NAME } } , { " i d ": SUBCATEGORY_ID, " subcategoryName ": SUBCATEGORY_NAME, " c a t e g o r y ": { " i d ": CATEGORY_ID, " categoryName ": CATEGORY_NAME } } . . . ]

3.1.6.2.6 Aggiunta di una Sottocategoria

Quando l’amministratore aggiunge una nuova sottocategoria ad una determinata categoria, l’applicativo effettua la richiesta al seguente endpoint:

POST /category/CATEGORY_ID/subcategories

Tale richiesta può essere effettuata solo dall’amministratore globale in quanto solo egli può inserire nuove sottocategorie; l’header della richiesta deve quindi contenere il token che identifica l’amministratore, come segue:

Authorization Bearer TOKEN

Il corpo della richiesta deve contenere il nome da assegnare alla nuova categoria.

Se si tenta di aggiungere una sottocategoria ad una categoria non esistente, la risposta del server seguirà la seguente struttura:

34 Implementazione

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 404 ,

" e r r o r ": " Not Found " ,

" message ": " Category n o t found w i t h i d : CATEGORY_ID " ,

" path ": " / c a t e g o r y / CATEGORY_ID / s u b c a t e g o r i e s " }

Se invece si tenta di inserire una sottocategoria già presente nel database, il server ritornerà la seguente risposta:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 400 ,

" e r r o r ": " Bad Request " ,

" message ": " Subcategory w i t h SubcategoryName ’SUBCATEGORY_NAME’ a l r e a d y e x i s t s " ,

" path ": " / c a t e g o r y / CATEGORY_ID / s u b c a t e g o r i e s " }

Se infine l’aggiunta di una sottocategoria ad una categoria avviene con successo, la risposta conterrà la sottocategoria appena creata.

3.1.6.2.7 Modifica di una Sottocategoria

Quando l’amministratore effettua una modifica ad una determinata sottocategoria, l’applica- tivo effettua la richiesta al seguente endpoint:

PUT /subcategory/SUBCATEGORY_ID

Tale richiesta può essere effettuata solo dall’amministratore globale in quanto solo egli può inserire modificare una categoria; l’header della richiesta deve quindi contenere il token che identifica l’amministratore, come segue:

Authorization Bearer TOKEN

Il corpo della richiesta deve contenere il nome da assegnare alla sottocategoria.

Se si cerca di modificare una sottocategoria non esistente, la risposta del server seguirà la seguente struttura:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 404 ,

" e r r o r ": " Not Found " ,

" message ": " Subcategory n o t found w i t h i d : SUBCATEGORY_ID" ,

" path ": " / s u b c a t e g o r y / SUBCATEGORY_ID" }

Se invece si tenta di assegnare alla sottocategoria un nome di una sottocategoria già presente nel database, il server ritornerà la seguente risposta:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 400 ,

" e r r o r ": " Bad Request " ,

" message ": " Subcategory w i t h SubcategoryName ’SUBCATEGORY_NAME’ a l r e a d y e x i s t s " ,

" path ": " / s u b c a t e g o r y / SUBCATEGORY_ID" }

Se infine la modifica di una sottocategoria avviene con successo, la risposta conterrà la sottocategoria appena modificata.

3.1.6.2.8 Rimozione di una Sottocategoria

Se l’amministratore decide di eliminare una sottocategoria, l’applicativo effettua la richiesta al seguente endpoint:

DELETE /subcategory/SUBCATEGORY_ID

Tale richiesta può essere effettuata solo dall’amministratore globale in quanto solo egli può inserire eliminare una sottocategoria; l’header della richiesta deve quindi contenere il token che identifica l’amministratore, come segue:

Authorization Bearer TOKEN

Se si cerca di eliminare una sottocategoria non esistente, la risposta del server seguirà la seguente struttura:

{

" timestamp ": TIMESTAMP,

" s t a t u s ": 404 ,

" e r r o r ": " Not Found " ,

" message ": " Subcategory n o t found w i t h i d : SUBCATEGORY_ID" ,

" path ": " / s u b c a t e g o r y / SUBCATEGORY_ID" }

Se la cancellazione di una sottocategoria avviene con successo, la risposta conterrà il messaggio “Subcategory Deleted”.

Nel documento Catalogo Swiss Mooc Service (pagine 38-43)

Documenti correlati