Jak przetestować REST API za pomocą rozszerzenia Chrome „Advanced Rest Client”

89

Postępując zgodnie z instrukcjami podanymi poniżej, pomyślnie zbudowałem interfejs API REST dla mojej aplikacji Django: http://django-rest-framework.org/tutorial/quickstart .

Mogę to przetestować, wykonując następujące czynności z wiersza poleceń systemu Unix:

curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/

To działa :)

Chciałbym jednak użyć rozszerzenia Advanced Rest Client do Chrome, aby przetestować tę samą funkcjonalność. Zainstalowałem rozszerzenie, ale nie wiem gdzie / jak umieścić pola. Kiedy zgaduję (jak widać na zrzucie ekranu), odrzuca go, mówiąc „Nie podano danych uwierzytelniających”

zrzut ekranu niepomyślnego żądania

Jak / gdzie mam określić moje parametry do REST API?

Saqib Ali
źródło

Odpowiedzi:

99

Wykrywalność jest fatalna, ale całkiem sprytny sposób, w jaki Advanced Rest Client obsługuje podstawowe uwierzytelnianie. Skrót, o którym wspomniał Abraham, nie działał dla mnie, ale trochę grzebania w kółko ujawniło, jak to robi.

Pierwszą rzeczą, którą musisz zrobić, to dodać Authorizationnagłówek: menu

Następnie, gdy skupisz się na valuewejściu , wyskakuje sprytna rzecz (zwróć uwagę na pole „konstrukcja” w prawym dolnym rogu): skonstruuj wartość auth

Kliknięcie go spowoduje wyświetlenie okna. Jeśli chcesz, obsługuje on nawet OAuth! wygodne wejścia

Tada! Jeśli zostawisz pole wartości puste po kliknięciu "konstruuj", doda do niego Basicczęść (zakładam, że doda również niezbędne elementy OAuth, ale nie próbowałem tego, ponieważ moje obecne potrzeby dotyczyły podstawowego uwierzytelnianie), więc nie musisz nic robić. wypełnia pole według potrzeb

Shauna
źródło
Do podstawowego uwierzytelnienia - youtube.com/watch?v=1SP1hgm9JqA . W zakładce „Formularz nagłówków” dodaj nagłówek „Autoryzacja”. Po rozpoczęciu pisania wykona auto-sugestię. W wartości kliknij przycisk Edytuj (ołówek) i wpisz dane uwierzytelniające w wyskakującym okienku.
uutsav
10

Na zrzucie ekranu widzę, że chcesz przekazać do usługi wartości „user” i „password”. Wysłałeś wartości parametrów w części nagłówka żądania, które są nieprawidłowe. Wartości są wysyłane w treści żądania, a nie w nagłówku żądania. Również twoja składnia jest nieprawidłowa. Prawidłowa składnia to: {"user":"user_val","password":"password_val"}. Sprawdź także, jaki jest typ zawartości. Powinien pasować do typu treści ustawionego dla Twojej usługi.

pan1490
źródło
7

Wydaje się, że to bardzo stare pytanie, ale udzielam odpowiedzi, aby pomóc innym. Możesz określić zmienne na drugim ekranie w sekcji formularza, jak pokazano poniżej, lub w formacie RAW, dołączając zmienne, jak pokazano na drugim obrazku.

Określ zmienne formularza

Określ w formacie RAW

Jeśli wartości zmiennych i zmiennych są prawidłowe, w sekcji odpowiedzi powinna pojawić się pomyślna odpowiedź.

Angela
źródło
co, jeśli jest to żądanie GET?
Dejell
Musiałem jawnie ustawić nagłówek Content-Type, z wartością: application / x-www-form-urlencoded
shasi kanth
6

Format skrótu zwykle używany do podstawowego uwierzytelniania to http://username:[email protected]/path. Będziesz także chciał dołączyć nagłówek akceptacji do żądania.

wprowadź opis obrazu tutaj

Abraham
źródło
Dzięki. Otrzymałem odpowiedź, która zawierała: <p> Weryfikacja CSRF nie powiodła się. Żądanie przerwane. </p> Jak to obejść?
Saqib Ali
Wygląda na to, że nie trafiasz do punktu końcowego interfejsu API, ale zamiast tego trafiasz do punktu końcowego, aby uruchomić JavaScript.
Abraham
Jest to zazwyczaj dobre rozwiązanie - chyba że Twój UID lub PWD zawiera symbole „:” lub „@”.
Blamkin86
Może być konieczne zakodowanie adresu URL nazwy użytkownika / hasła, jeśli zawierają one znaki zastrzeżone.
Abraham
Próbowałem użyć twojego rozwiązania dla polecenia GET na HTTPS i nie zadziałało. np. użytkownik: @ api.com / v2 / shipments Działa w curl. co jest nie tak? nie ma hasła
Dejell
3

w sekcji nagłówka musisz napisać

Autoryzacja: podstawowa aG9sY67890vbGNpbQ ==

gdzie ciąg po basic to 64-bitowa wartość kodowania twojej nazwy użytkownika: hasło. Przykładem php pobierania wartości nagłówka jest: echo "Autoryzacja: Podstawowa". base64_encode ("myUser: moje hasło");

Uwaga: przyjąłem twoją metodę uwierzytelniania jako podstawową. które również mogą być inne.

Muktadir
źródło
Pytanie dotyczy konkretnie tego, jak to zrobić w rozszerzeniu Chrome Advanced Rest Client.
Shauna
Odpowiedź Shauny była poprawna i powinna być akceptowaną odpowiedzią, ale ten komentarz od sharif jest również przydatny dla tych, którzy są ciekawi, co zrobił klient Chrome Advanced Rest, aby zakodować dla Ciebie użytkownika i hasło. Dzięki.
Deemoe
3

Dodaj nagłówek autoryzacji i kliknij przycisk ołówka, aby wprowadzić nazwę użytkownika i hasła

wprowadź opis obrazu tutaj

Ahmad Nadeem
źródło
0

Łatwym sposobem rozwiązania tego problemu z uwierzytelnianiem jest kradzież tokena uwierzytelniania za pomocą programu Fiddler.

Kroki

  1. Uruchom skrzypce i przeglądarkę.
  2. Przejdź do przeglądarki, aby otworzyć aplikację internetową (witrynę internetową) i wykonaj wymagane uwierzytelnianie.
  3. Otwórz program Fiddler i kliknij żądanie strony HTTP 200 HTML. Przechwytywanie wartości pliku cookie za pomocą programu Fiddler
  4. W prawym okienku z nagłówków żądań skopiuj wartość parametru nagłówka pliku cookie. wprowadź opis obrazu tutaj
  5. Otwórz klienta REST i kliknij kartę „Formularz nagłówka” i podaj wartość pliku cookie ze schowka.

Kliknij przycisk WYŚLIJ, aby pobrać wyniki.

Praveen Kumar Thalluri
źródło
0

Przy najnowszym ARC dla żądania GET z uwierzytelnianiem trzeba dodać surowy nagłówek o nazwie Authorization: authtoken.

Proszę znaleźć zrzut ekranu Uzyskaj żądanie z parametrami uwierzytelniania i zapytania

Aby dodać parametr zapytania, kliknij strzałkę w dół po lewej stronie pola adresu URL.

Sagar Misal
źródło