Mam pytanie związane z projektowaniem adresu URL REST. Znalazłem kilka odpowiednich postów tutaj: Różne reprezentacje RESTful tego samego zasobu i tutaj: URL RESTful do zasobu GET według różnych pól, ale odpowiedzi nie są do końca jasne, jakie są najlepsze praktyki i dlaczego. Oto przykład.
Mam adresy URL REST do reprezentowania zasobów „użytkowników”. Mogę OTRZYMAĆ użytkownika z identyfikatorem lub adresem e-mail, ale reprezentacja adresu URL pozostaje taka sama dla obu. Przeglądając wiele blogów i książek, widzę, że ludzie robili to na wiele różnych sposobów. Na przykład
przeczytaj tę praktykę w książce i gdzieś na stackoverflow (nie mogę znaleźć linku ponownie)
GET /users/id={id}
GET /users/email={email}
przeczytaj tę praktykę na wielu blogach
GET /users/{id}
GET /users/email/{email}
Parametry zapytania są zwykle używane do filtrowania wyników zasobów reprezentowanych przez adres URL, ale widziałem również tę praktykę
GET /users?id={id}
GET /users?email={email}
Moje pytanie brzmi: która spośród wszystkich tych praktyk byłaby najbardziej sensowna dla programistów korzystających z interfejsu API i dlaczego? Uważam, że nie ma żadnych zasad ustalonych w kamieniu, jeśli chodzi o projekty adresów URL REST i konwencje nazewnictwa, ale chciałem tylko wiedzieć, jaką drogę powinienem obrać, aby pomóc programistom lepiej zrozumieć API.
Cała pomoc doceniona!