Chrome의 확장 프로그램 'Advanced Rest Client'를 사용하여 REST API를 테스트하는 방법


89

아래 링크의 지침에 따라 Django 애플리케이션 용 REST API를 성공적으로 빌드했습니다. http://django-rest-framework.org/tutorial/quickstart .

Unix 프롬프트에서 다음을 수행하여 테스트 할 수 있습니다.

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

효과가있다 :)

그러나 Chrome 확장 프로그램 Advanced Rest Client를 사용하여 동일한 기능을 테스트하고 싶습니다. 확장 프로그램을 설치했지만 필드를 어디에 / 어떻게 넣을지 모르겠습니다. (스크린 샷에서 볼 수 있듯이) 내 추측을 할 때 "인증 자격 증명이 제공되지 않았습니다"라는 메시지가 거부됩니다.

실패한 요청의 스크린 샷

REST API에 대한 매개 변수를 어떻게 / 어디에 지정해야합니까?

답변:


99

검색 가능성은 음울하지만 Advanced Rest Client가 기본 인증을 처리하는 방법은 매우 영리합니다. 아브라함이 언급 한 지름길은 나에게는 효과가 없었지만, 조금 훑어 보면 어떻게 작동하는지 알 수 있습니다.

가장 먼저해야 할 일은 Authorization 헤더를 . 메뉴

그런 다음 초점을 맞출 때 멋진 작은 것이 나타납니다. value 입력에 (오른쪽 하단의 "construct"상자에 유의하십시오). 인증 값 구성

클릭하면 상자가 나타납니다. 원하는 경우 OAuth도 수행합니다! 편리한 입력

타다! "construct"를 클릭 할 때 값 필드를 비워두면 해당 Basic부분 이 추가 됩니다 (필자는 필요한 OAuth 항목도 추가 할 것이라고 가정하지만 현재 요구 사항은 기본 사항이므로 시도하지 않았습니다. 인증)이므로 아무것도 할 필요가 없습니다. 필요에 따라 필드를 채 웁니다.


기본 인증 -youtube.com/watch?v=1SP1hgm9JqA . "Headers form"탭에서 "Authorization"헤더를 추가합니다. 입력을 시작하면 자동 제안이 수행됩니다. 값에서 편집 (연필) 버튼을 클릭하고 팝업에 인증 자격 증명을 입력합니다.
uutsav

10

스크린 샷에서 "user"및 "password"값을 서비스에 전달하려는 것을 알 수 있습니다. 잘못된 요청 헤더 부분에 매개 변수 값을 전송했습니다. 값은 요청 헤더가 아닌 요청 본문으로 전송됩니다. 또한 구문이 잘못되었습니다. 올바른 구문은 다음과 같습니다. {"user":"user_val","password":"password_val"}. 또한 콘텐츠 유형이 무엇인지 확인합니다. 서비스에 설정 한 콘텐츠 유형과 일치해야합니다.


7

이것은 매우 오래된 질문으로 보이지만 다른 사람들에게 도움이 될 수 있도록 답변을 제공하고 있습니다. 아래에 표시된대로 양식 섹션의 두 번째 화면에서 변수를 지정하거나 두 번째 이미지에 표시된대로 변수를 추가하여 RAW 형식으로 지정할 수 있습니다.

양식 변수 지정

RAW 형식으로 지정

변수 및 변수 값이 유효하면 응답 섹션에 성공적인 응답이 표시되어야합니다.


GET 요청이면 어떻게됩니까?
Dejell

나는 값을 명시 적으로 Content-Type 헤더를 설정했다 :을 application / x-www-form이-urlencoded로
shasi kanth

6

기본 인증에 일반적으로 사용되는 바로 가기 형식은 http://username:password@example.com/path. 요청에 수락 헤더도 포함 할 수 있습니다.

여기에 이미지 설명 입력


감사. 다음이 포함 된 응답을 받았습니다. <p> CSRF 확인에 실패했습니다. 요청이 중단되었습니다. </ p>이 문제를 해결하려면 어떻게해야합니까?
Saqib Ali

API 끝점에 도달하지 않고 대신 JavaScript에 도달하도록 끝점에 도달하는 것처럼 들립니다.
abraham

UID 또는 PWD에 ":"또는 "@"기호가 포함되어 있지 않으면 이는 일반적으로 훌륭한 솔루션입니다.
Blamkin86

예약 된 문자가 포함 된 경우 사용자 이름 / 암호를 URL 인코딩해야 할 수 있습니다.
abraham

HTTPS에서 GET 명령에 대한 솔루션을 사용하려고했지만 작동하지 않았습니다. 예 : user : @ api.com / v2 / shipments 그것은 curl에서 작동합니다. 뭐가 잘못 되었 니? 암호가 없습니다
Dejell

3

헤더 섹션에 작성해야

인증 : 기본 aG9sY67890vbGNpbQ ==

여기서 기본 뒤의 문자열은 사용자 이름 : 암호의 64 비트 인코딩 값입니다. 헤더 값을 가져 오는 PHP 예제는 다음과 같습니다. echo "Authorization : Basic". base64_encode ( "myUser : myPassword");

nb : 인증 방법을 기본으로 가정했습니다. 다를 수 있습니다.


이 질문은 Chrome 확장 프로그램 Advanced Rest Client에서 수행하는 방법에 대해 구체적으로 묻습니다.
Shauna

Shauna의 답변은 정확하고 허용되는 답변이어야하지만 sharif의이 의견은 Chrome Advanced Rest 클라이언트가 사용자와 비밀번호를 인코딩하기 위해 수행 한 작업을 알고 싶은 사람들에게도 유용합니다. 감사.
Deemoe 2014

3

인증 헤더를 추가하고 연필 버튼을 클릭하여 사용자 이름과 비밀번호를 입력합니다.

여기에 이미지 설명 입력


0

이 인증 문제를 극복하는 쉬운 방법은 Fiddler를 사용하여 인증 토큰을 훔치는 것입니다.

단계

  1. 피들러와 브라우저를 실행하세요.
  2. 브라우저를 탐색하여 웹 응용 프로그램 (웹 사이트)을 열고 필요한 인증을 수행합니다.
  3. Fiddler를 열고 HTTP 200 HTML 페이지 요청을 클릭합니다. Fiddler를 사용하여 쿠키 값 캡처
  4. 오른쪽 창의 요청 헤더에서 쿠키 헤더 매개 변수 값을 복사합니다. 여기에 이미지 설명 입력
  5. REST Client를 열고 "Header form"탭을 클릭하고 클립 보드에서 쿠키 값을 제공합니다.

보내기 버튼을 클릭하면 결과를 가져옵니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.