2012-12-12

REST in peace - projektowanie API webowego cz.1 base URL

Dobrze napisane API aplikacji webowej powinno być przyjazne dla developerów, którzy z niego będą korzystali. Osiągnięcie tego celu ułatwia stosowanie wzorca architektury REST (Representational State Transfer).

Jednym z najważniejszych elementów API jest jego adres URL. RESTowe podejście mówi: "Rzeczowniki są dobre, czasowniki są złe". Bazowy URL powinien być prosty i intuicyjny, dzięki temu użycie projektowanego API będzie łatwe. Powinny być tylko 2 bazowe URLe na zasób.

Koń jaki jest każdy widzi - a więc pora na przykład ;) 


/horses /horses/1234

Pierwszy url reprezentuje kolekcję, drugi: element kolekcji. Zamiast używać czasowników w adresie URL zastosujemy czasowniki HTTPowe : POST, GET, PUT, DELETE. Z ich pomocą API wykona podstawowe operacje CRUD (Create-Read-Update-Delete) właśnie w tej kolejności. Tak więc zamiast adresu /getAllHorses użyjemy: GET /horses, zamiast /updateHorse/1234 -> PUT /horses/1234 itd.

Poniższa tabela przedstawia podstawowe akcje na zasobie konika:
Zasób
POST
(dodaj)
GET
(czytaj)
PUT
(aktualizuj)
DELETE
(usuń)
/horses
Nowy koń
Lista koni
Bulk update koni
Usuń wszystkie konie
/horses/1234
Błąd
Pokaż siwka
Jeśli istnieje to zrób update siwka,
jeśli nie – Błąd
Usuń siwka
W efekcie programista nie będzie potrzebował dokumentacji aby zrozumieć jak działa API.