Przekierowania HTTP są wykonywane za pomocą kodów HTTP 301 i 302 (być może także innych kodów) oraz pola nagłówka znanego jako „Lokalizacja”, które ma adres nowego miejsca, do którego należy przejść. Jednak przeglądarki zawsze wysyłają żądanie „GET” na ten adres URL. Jednak wiele razy musisz przekierować użytkownika do innej domeny …
W całym Internecie widzę następujące porady: GET nigdy nie powinien zmieniać danych na serwerze - użyj do tego żądania POST Jaka jest podstawa tego pomysłu? Jeśli utworzę usługę php, która wstawi dane do bazy danych i przekażę jej parametry w ciągu zapytania GET, dlaczego tak się dzieje? (Używam przygotowanych instrukcji, …
Buduję interfejs API, w którym użytkownik może poprosić serwer o wykonanie wielu akcji w jednym żądaniu HTTP. Wynik jest zwracany jako tablica JSON, z jednym wpisem na akcję. Każda z tych akcji może zakończyć się niepowodzeniem lub odnieść sukces niezależnie od siebie. Na przykład pierwsza akcja może się powieść, dane …
Ostatnio czytałem o Hypermedia jako silniku stanu aplikacji (HATEOAS), ograniczeniu, które, jak się twierdzi, sprawia, że interfejs API sieci Web jest „naprawdę RESTful”. Sprowadza się to zasadniczo do uwzględnienia łączy z każdą odpowiedzią na możliwe przejścia, które możesz wykonać z bieżącego stanu. Pozwól mi zilustrować, co HATEOAS opiera się na …
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 …
Pracuję nad projektem i po kłótni z ludźmi w pracy przez ponad godzinę. Postanowiłem wiedzieć, co mogą powiedzieć ludzie korzystający z wymiany stosów. Piszemy API dla systemu, istnieje zapytanie, które powinno zwrócić drzewo Organizacji lub drzewo Celów. Drzewo Organizacji to organizacja, w której użytkownik jest obecny. Innymi słowy, drzewo to …
Powiedz, że mam punkt końcowy REST, który przyjmuje liczbę całkowitą jako parametr: /makeWaffles?numberOfWaffles=3 W tym przypadku chcę, aby liczba była dodatnia, ponieważ nie mogę zrobić ujemnej liczby gofrów (a żądanie 0 gofrów to strata czasu). Chcę więc odrzucić każde żądanie, które nie zawiera dodatniej liczby całkowitej. Chcę również odrzucić żądanie, …
Kilka serwerów, z którymi miałem do czynienia, zwróci HTTP 200 dla żądań, które klient powinien rozważyć jako błąd, z czymś w rodzaju „sukces: fałsz” w treści. Nie wydaje mi się to prawidłową implementacją kodów HTTP, szczególnie w przypadku nieudanego uwierzytelnienia. Przeczytałem kody błędów HTTP dość zwięźle podsumowane, ponieważ „4xx” oznacza, …
Nasz serwis jest obecnie w 5 miastach. Jeśli ktoś spróbuje wywołać interfejs API naszej usługi z dowolnego innego miasta, chcemy zgłosić ten błąd Service not available in your area. Pytanie brzmi: jaki byłby odpowiedni kod http dla tego błędu? 503 Usługa niedostępna 403: zabronione albo coś innego?
Pracuję nad zestawem usług internetowych dla klienta mobilnego, a wymagania wymagają, aby unikalny identyfikator urządzenia był dołączany do wszystkich żądań, aby był przechowywany w niektórych żądaniach i używany do filtrowania wyników w innych. Zasugerowano, aby umieścić go w niestandardowym nagłówku HTTP, ponieważ będzie on dołączany do wszystkich żądań, więc zacząłem …
Zastanawiałem się nad tym. Załóżmy, że mam userzasób idi namepolami. Jeśli chcę zaktualizować pole, mogę po prostu wysłać PATCH do takiego zasobu PATCH /users/42 {"name": "john doe"} A następnie aplikacja zaktualizuje nazwę użytkownika 42. Ale dlaczego, jeśli powtórzę tę prośbę, wynik byłby inny? Zgodnie z RFC 5789 PATCH nie jest …
Buduję RESTful API, który obsługuje kolejkowanie długotrwałych zadań do ewentualnej obsługi. Typowy przepływ pracy dla tego interfejsu API to: Użytkownik wypełnia formularz Klient publikuje dane w interfejsie API API zwraca 202 Zaakceptowano Klient przekierowuje użytkownika na unikalny adres URL tego żądania ( /results/{request_id}) ~ ostatecznie ~ Klient ponownie odwiedza adres …
Załóżmy, że interfejs API REST w odpowiedzi na GETżądanie HTTP zwraca dodatkowe dane w podobiektie owner: { id: 'xyz', ... some other data ... owner: { name: 'Jo Bloggs', role: 'Programmer' } } Oczywiście nie chcemy, aby ktokolwiek mógł się PUTcofnąć { id: 'xyz', ... some other data ... owner: …
Przygotowuję specyfikację dla usługi REST, której część będzie obejmować możliwość dławienia użytkowników w całej usłudze oraz na grupach lub na poszczególnych zasobach. Podobnie limity czasowe dla nich byłyby konfigurowalne dla zasobu / grupy / usługi. Właśnie przeglądam specyfikację HTTP 1.1 i próbuję zdecydować, w jaki sposób powiadomię klienta, że żądanie …
Pracuję nad zaprojektowaniem interfejsu API RESTful. Wiemy, że chcemy zwrócić JSON i XML dla dowolnego zasobu. Myślałem, że zrobimy coś takiego: GET /api/something?param1=value1 Accept: application/xml (or application/json) Jednak ktoś rzucił do tego celu rozszerzenia, na przykład: GET /api/something.xml?parm1=value1 (or /api/something.json?param1=value1) Jakie są kompromisy z tymi podejściami? Czy najlepiej jest polegać …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.