Dyskutowałem o tym, co zrobić z końcowym ukośnikiem w interfejsie API RESTful.
Powiedzmy, że mam zasób zwany psami i zasoby podrzędne dla poszczególnych psów. Możemy zatem wykonać następujące czynności:
GET/PUT/POST/DELETE http://example.com/dogs
GET/PUT/POST/DELETE http://example.com/dogs/{id}
Ale co robimy w następującym specjalnym przypadku:
GET/PUT/POST/DELETE http://example.com/dogs/
Moim osobistym zdaniem jest to, że oznacza to wysłanie żądania do pojedynczego zasobu psa o id = null
. Myślę, że interfejs API powinien zwrócić 404 dla tego przypadku.
Inni twierdzą, że żądanie dostępu do zasobu psów, tzn. Ukośnik końcowy jest ignorowany.
Czy ktoś zna ostateczną odpowiedź?
dogs
i dogs/
jako równoważny. Dla mnie jasne dogs/
jest, że jest to katalog zawierający poszczególne psy. Jest mniej jasne, co dogs
jest, ale traktowałbym to jako równoważne, tak jak większość serwerów akceptuje dostęp do katalogów bez końcowego /
.