Buduję REST API dla mojego projektu. API do pobierania INFO danego użytkownika to:
api.com/users/[USER-ID]
Chciałbym również umożliwić klientowi przekazanie listy identyfikatorów użytkowników. Jak mogę zbudować interfejs API, aby był zgodny ze specyfikacją REST i przyjmował listę identyfikatorów użytkowników?
Odpowiedzi:
Jeśli przekazujesz wszystkie parametry w adresie URL, prawdopodobnie najlepszym wyborem będą wartości oddzielone przecinkami. Wtedy miałbyś szablon adresu URL podobny do następującego:
źródło
…?id=1&id=2&id=3
, nie ma gwarancji, że zduplikowane parametry zapytania zostaną połączone w tablicę. Z powyższym ciągiem zapytania PHP zdarza się powiedzieć, żeid
równa się[1, 2, 3]
, ale Ruby on Rails mówi, że to równa się3
, a inne frameworki mogą również działać inaczej, np. Mówiąc, żeid
równa się1
.…?id=1,2,3
Takie adresy URL pozwalają uniknąć tego potencjalnego pomyłki.IMO, powyższe wywołania nie wyglądają na RESTful, jednak są to szybkie i wydajne obejście (y). Jednak długość adresu URL jest ograniczona przez serwer WWW, np . Tomcat .
RESTful próba:
Serwer odpowie na URI nowo utworzonego zasobu zadania wsadowego .
Teraz klient może pobrać odpowiedź wsadową lub postęp zadania przez odpytywanie
GET http://example.com/api/batchtask/1254
Oto jak inni próbowali rozwiązać ten problem:
źródło
Znalazłem inny sposób zrobienia tego samego, używając
@PathParam
. Oto przykładowy kod.Zadzwoń do usługi, używając następującego adresu URL.
gdzie
źródło
O ile wolę to podejście: -
Właściwy sposób to
lub
Tak to robi rack . Tak to robi php . Tak też robi to node ...
źródło
Możesz zbudować Rest API lub spokojny projekt przy użyciu ASP.NET MVC i zwrócić dane jako JSON. Przykładowa funkcja kontrolera to:
Następnie po prostu wywołujesz funkcję GetUsers za pośrednictwem zwykłej funkcji AJAX dostarczającej tablicę identyfikatorów (w tym przypadku używam jQuery stringify, aby wysłać tablicę jako ciąg znaków i zdematerializować ją z powrotem w kontrolerze, ale możesz po prostu wysłać tablicę int i odebrać to jako tablica int w kontrolerze). Zbudowałem cały Restful API przy użyciu ASP.NET MVC, który zwraca dane jako json międzydomenowy i może być używany z dowolnej aplikacji. Oczywiście, jeśli możesz używać ASP.NET MVC.
źródło