Ho avuto un dibattito su cosa fare con una barra finale in un'API RESTful.
Diciamo che ho una risorsa chiamata cani e risorse subordinate per i singoli cani. Possiamo quindi fare quanto segue:
GET/PUT/POST/DELETE http://example.com/dogs
GET/PUT/POST/DELETE http://example.com/dogs/{id}
Ma cosa facciamo con il seguente caso speciale:
GET/PUT/POST/DELETE http://example.com/dogs/
La mia opinione personale è che questo sta dicendo inviare una richiesta a una singola risorsa cane con id = null
. Penso che l'API dovrebbe restituire un 404 per questo caso.
Altri dicono che la richiesta sta accedendo alla risorsa cani, ovvero la barra finale viene ignorata.
Qualcuno conosce la risposta definitiva?
dogs
e dogs/
come equivalente. Per me è chiaro che dogs/
è una directory che contiene i singoli cani. È meno chiaro cosa dogs
sia, ma lo tratterei come equivalente, proprio come la maggior parte dei server web accetta gli accessi alle directory senza il trailing /
.