API methods - Gpaquola/recupero_lab_integrato GitHub Wiki
Testing API
Creazione di un eveto
Inviare una richiesta POST al server di testing come nell'esempio
127.0.0.1:8000/api/event/create
Inserendo i dati nel body:
name:accadimento
note:nel mezo del cammin di nostra vita
begin:2019-05-02 23:00:00
end:2019-06-02 00:00:00
priority:1
I dati inseriti devono risultare positivi alla validazione, diversamente verrà restituino un json contentente gli errori relativi al matching dei parametri.
ad esempio:
{
"message": "The given data was invalid.",
"errors": {
"begin": [
"The begin does not match the format Y-m-d H:i:s."
]
}
}
Di seguito le validation rules:
[
'name' => 'required|string',
'begin' => 'required|date_format:Y-m-d H:i:s',
'note' => 'string|nullable',
'end' => 'date_format:Y-m-d H:i:s|nullable',
'priority ' => 'digits:1'
]
Se non comprendi la formattazione della data consulta la documentazione del metodo
date()
su php.net
nota: il valore di default della priority e impostato ad 1.
In caso di successo verrà restituito un json:
{
"id": 29,
"status": 200
}
contentete l'id dell'evento appena generato con status 200. In caso di fallimento il server ritornerà un 404.
Selezionare uno o più eventi
Tramite attributo
Effettuando una richiesta con verbo GET come nell' esempio,
127.0.0.1:8000/api/event/{event_attribute}
nota:
{event_attribute}
è da sostituire ad un attributo dell'evento, ad esempioname
oid
.
specificando nel body della richiesta {event_attribute}
come chiave
e il contenuto attraverso il quale filtrare la ricerca come valore,
verrà restituito un json contentente tutti gli eventi che presentano lo stesso valore.
Ad esempio:
127.0.0.1:8000/api/event/name
poi inserisco nel body
name:accadimento
risposta:
[
{
"id": 27,
"name": "accadimento",
"note": null,
"priority": 1,
"begin": "2019-05-02 23:00:00",
"end": "2019-06-02 00:00:00",
"created_at": "2019-04-03 23:38:03",
"updated_at": null
},
{
"id": 28,
"name": "accadimento",
"note": null,
"priority": 1,
"begin": "2019-05-05 23:00:00",
"end": null,
"created_at": "2019-04-03 23:50:07",
"updated_at": null
},
{
"id": 29,
"name": "accadimento",
"note": "nel mezzo del cammin di nostra vita",
"priority": 1,
"begin": "2019-05-02 11:00:00",
"end": null,
"created_at": "2019-04-04 00:57:59",
"updated_at": null
}
]
In caso di fallimento verrà restituto un errore 404.
nota: le regole di validazione precedentemente elencate si applicano anche a questo caso ad eccezione della regola
require
.
Per periodo di tempo
Le seguenti tre funzioni rispondono tutte a metodo GET nella forma:
- per anno
127.0.0.1:8000/api/event/year/{year}
dove {year} è da sostituire con l'anno attraverso cui filtrare in formato a quattro cifre
- per mese
127.0.0.1:8000/api/event/year/{year}/month/{month}
dove {month} è da sostituire con il mese dell'anno a due cifre(es. 03, 09)
- per settimana
127.0.0.1:8000/api/event/year/{year}/week/{week}
dove {week} è da sostituire con la settimana dell'anno in formato adue cifre
- per giorno
127.0.0.1:8000/api/event/year/{year}/month/{month}/day/{day}
dove {day} è da sostituire con il girno del mese in formato a due cifre.
La richiesta ritorna un json contente gli eventi attinenti alla ricerca, come nell'esempio:
127.0.0.1:8000/api/event/year/2018/month/10
[
{
"id": 15,
"name": "consequatur",
"note": "Sit aut magnam molestias magnam.",
"priority": 8,
"begin": "2018-10-03 10:51:42",
"end": "1988-10-14 09:08:52",
"created_at": "2019-03-31 21:34:02",
"updated_at": "2019-03-31 21:34:02"
}
]
In caso non venisse trovato alcun elemento verrà restituito un 404.
modificare un evento
Effenduando una richiesta con verbo POST nella forma
127.0.0.1:8000/api/event/modify/{id}
dove {id} è da sostituire all' id dell' evento che si desidera modificare.
Nel body della richiesta è sufficente specificare i campi che si desidera modificare, ma valgono le regole di validazione come nella ricerca per attributo. Di seguito l'esempio:
127.0.0.1:8000/api/event/modify/18
La risposta sarà un json contentente l'evento nella nuova versione in caso di successo,
{
"6": {
"id": 18,
"name": "scendere il cane",
"note": "Magnam qui suscipit voluptatem.",
"priority": 3,
"begin": "2019-04-04 23:20:28",
"end": "1980-08-30 05:18:57",
"created_at": "2019-04-03 22:36:34",
"updated_at": "2019-04-03 22:36:34"
}
}
oppure un 404 in caso di fallimento, ad esempio se la risorsa non esiste o è già stata modificata.
Eliminare un evento
Tramite id
Inviare una richiesta nella forma
127.0.0.1:8000/api/event/drop/{id}
dove {id} è da sostituire con l'id dell'evento desiderato.
In caso di successo verà tornato un json simile a quello ritornato creando un evento:
{"id":"{id}","status":200}
in caso contrario verrà restituito un 404.
Per lasso di tempo
Inviare una richiesta nella forma
127.0.0.1:8000/api/event/drop/year/{year}
dove {year} è da sostituire con l'anno attraverso cui filtrare in formato a quattro cifre
- per mese
127.0.0.1:8000/api/event/drop/year/{year}/month/{month}
dove {month} è da sostituire con il mese dell'anno a due cifre(es. 03, 09)
- per giorno
127.0.0.1:8000/api/event/drop/year/{year}/month/{month}/day/{day}
dove {day} è da sostituire con il girno del mese in formato a due cifre.
La richiesta ritorna un json contente gli eventi eliminati alla ricerca, come nell'esempio:
127.0.0.1:8000/api/event/drop/year/1976
[
{
"id": 25,
"name": "ipsa",
"note": "Non temporibus eum rerum delectus quis non tenetur.",
"priority": 7,
"begin": "1976-10-24 01:09:34",
"end": "1976-05-14 15:54:31",
"created_at": "2019-04-03 22:36:34",
"updated_at": "2019-04-03 22:36:35"
}
]
In caso non venisse trovato alcun elemento verrà restituito un 404.