Como testar a API REST usando a extensão do Chrome “Advanced Rest Client”

89

Seguindo as instruções no link abaixo, eu construí com sucesso uma API REST para meu aplicativo Django: http://django-rest-framework.org/tutorial/quickstart .

Posso testá-lo fazendo o seguinte no prompt do Unix:

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

Funciona :)

No entanto, gostaria de usar a extensão do Chrome Advanced Rest Client para testar essa mesma funcionalidade. Instalei a extensão, mas não sei onde / como colocar os campos. Quando faço meu palpite (como você pode ver na captura de tela), ele o rejeita dizendo "As credenciais de autenticação não foram fornecidas"

captura de tela de solicitação com falha

Como / onde devo especificar meus parâmetros para a API REST?

Saqib Ali
fonte

Respostas:

99

A descoberta é desanimadora, mas é bastante inteligente como o Advanced Rest Client lida com a autenticação básica. O atalho que Abraão mencionou não funcionou para mim, mas uma pequena fuçada revelou como funciona.

A primeira coisa que você precisa fazer é adicionar o Authorizationcabeçalho: cardápios

Em seguida, uma pequena coisa bacana aparece quando você focaliza a valueentrada (observe a caixa "construir" no canto inferior direito): construir o valor de autenticação

Clicar nele abrirá uma caixa. Ele até faz OAuth, se você quiser! entradas convenientes

Tada! Se você deixar o campo de valor em branco ao clicar em "construir", ele adicionará a Basicparte a ele (presumo que também adicionará o material de OAuth necessário, mas não tentei fazer isso, pois minhas necessidades atuais eram básicas autenticação), então você não precisa fazer nada. preenche o campo conforme necessário

Shauna
fonte
Para autenticação básica - youtube.com/watch?v=1SP1hgm9JqA . Na guia "Formulário de cabeçalhos", adicione um cabeçalho "Autorização". Ele fará uma sugestão automática assim que você começar a digitar. No valor, clique no botão Editar (lápis) e digite as credenciais de autenticação no pop-up.
uutsav de
10

Pela captura de tela, posso ver que você deseja passar os valores de "usuário" e "senha" para o serviço. Você enviou os valores dos parâmetros na parte do cabeçalho da solicitação, o que está errado. Os valores são enviados no corpo da solicitação e não no cabeçalho da solicitação. Além disso, sua sintaxe está errada. A sintaxe correta é: {"user":"user_val","password":"password_val"}. Verifique também qual é o tipo de conteúdo. Deve corresponder ao tipo de conteúdo que você definiu para o seu serviço.

pan1490
fonte
7

Essa parece uma pergunta muito antiga, mas estou respondendo, para que possa ajudar outras pessoas. Você pode especificar as variáveis ​​na segunda tela na seção do formulário, conforme mostrado abaixo, ou no formato RAW, anexando as variáveis ​​conforme mostrado na segunda imagem.

Especifique as variáveis ​​do formulário

Especifique no formato RAW

Se sua variável e seus valores de variável forem válidos, você deverá ver uma resposta bem-sucedida na seção de resposta.

Angela
fonte
e se for um pedido GET?
Dejell
Tive que definir o cabeçalho Content-Type explicitamente, com o valor: application / x-www-form-urlencoded
shasi kanth
6

O formato de atalho geralmente usado para autenticação básica é http://username:[email protected]/path. Você também desejará incluir o cabeçalho de aceitação na solicitação.

insira a descrição da imagem aqui

Abraão
fonte
Obrigado. Recebi uma resposta que incluía o seguinte: <p> Falha na verificação de CSRF. Solicitação abortada. </p> Como faço para contornar isso?
Saqib Ali
Parece que você não está atingindo um ponto de extremidade da API, mas sim um ponto de extremidade para o JavaScript atingir.
Abraão
Esta é normalmente uma boa solução - a menos que seu UID ou PWD inclua os símbolos ":" ou "@".
Blamkin86
Pode ser necessário codificar o URL do nome de usuário / senha se eles contiverem caracteres reservados.
abraham
Estava tentando usar sua solução para o comando GET no HTTPS e não funcionou. por exemplo, usuário: @ api.com / v2 / shipments Funciona em curl. o que está errado? não há senha
Dejell
3

na seção do cabeçalho, você deve escrever

Autorização: Basic aG9sY67890vbGNpbQ ==

onde string após basic é o valor de codificação de 64 bits do seu nome de usuário: senha. Um exemplo de php de obtenção dos valores do cabeçalho é: echo "Autorização: Básica". base64_encode ("myUser: myPassword");

Nota: Presumi que seu método de autenticação fosse básico. que também pode ser diferente.

Muktadir
fonte
A questão pergunta especificamente sobre como fazê-lo na extensão do Chrome Advanced Rest Client.
Shauna
A resposta de Shauna foi correta e deve ser aceita, mas este comentário do sharif também é útil para aqueles que estão curiosos para saber o que o cliente Chrome Advanced Rest fez para codificar o usuário e a senha para você. Obrigado.
Deemoe
3

Adicione o cabeçalho de autorização e clique no botão do lápis para inserir o nome de usuário e as senhas

insira a descrição da imagem aqui

Ahmad Nadeem
fonte
0

A maneira fácil de superar esse problema de autenticação é roubando o token de autenticação usando o Fiddler.

Passos

  1. Abra o violinista e o navegador.
  2. Navegue no navegador para abrir o aplicativo da web (site da web) e faça a autenticação necessária.
  3. Abra o Fiddler e clique em HTTP 200 HTML page request. Capturando o valor do cookie usando o Fiddler
  4. No painel direito, nos cabeçalhos de solicitação, copie o valor do parâmetro do cabeçalho do cookie. insira a descrição da imagem aqui
  5. Abra o Cliente REST e clique na guia "Formulário de cabeçalho" e forneça o valor do cookie da área de transferência.

Clique no botão ENVIAR e ele buscará os resultados.

Praveen Kumar Thalluri
fonte
0

Com o ARC mais recente para a solicitação GET com autenticação, é necessário adicionar um cabeçalho bruto denominado Autorização: authtoken.

Encontre a captura de tela Obter solicitação com autenticação e parâmetros de consulta

Para adicionar o parâmetro de consulta, clique na seta suspensa no lado esquerdo da caixa do URL.

Sagar Misal
fonte