Cómo probar la API REST usando la extensión de Chrome "Advanced Rest Client"

89

Siguiendo las instrucciones del enlace a continuación, construí con éxito una API REST para mi aplicación Django: http://django-rest-framework.org/tutorial/quickstart .

Puedo probarlo haciendo lo siguiente desde el indicador de Unix:

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

Funciona :)

Sin embargo, me gustaría usar la extensión de Chrome Advanced Rest Client para probar esta misma funcionalidad. He instalado la extensión, pero no sé dónde / cómo poner los campos. Cuando hago mi suposición educada (como puede ver en la captura de pantalla), la rechaza diciendo "No se proporcionaron las credenciales de autenticación"

captura de pantalla de la solicitud fallida

¿Cómo / dónde debo especificar mis parámetros para la API REST?

Saqib Ali
fuente

Respuestas:

99

La capacidad de detección es pésima, pero es bastante inteligente cómo Advanced Rest Client maneja la autenticación básica. El atajo que Abraham mencionó no funcionó para mí, pero un poco de curiosidad reveló cómo lo hace.

Lo primero que debe hacer es agregar el Authorizationencabezado: menús

Luego, aparece una pequeña cosa ingeniosa cuando enfoca la valueentrada (observe el cuadro "construir" en la parte inferior derecha): construir el valor de autenticación

Al hacer clic en él, aparecerá un cuadro. ¡Incluso hace OAuth, si quieres! entradas convenientes

Tada! Si deja el campo de valor en blanco cuando hace clic en "construir", se le agregará la Basicparte (supongo que también agregará las cosas necesarias de OAuth, pero no lo intenté, ya que mis necesidades actuales eran básicas autenticación), por lo que no necesita hacer nada. llena el campo según sea necesario

Shauna
fuente
Para la autenticación básica: youtube.com/watch?v=1SP1hgm9JqA . En la pestaña "Formulario de encabezados", agregue un encabezado "Autorización". Hará una sugerencia automática una vez que comience a escribir. En el valor, haga clic en el botón Editar (lápiz) y escriba las credenciales de autenticación en la ventana emergente.
uutsav
10

En la captura de pantalla, puedo ver que desea pasar los valores de "usuario" y "contraseña" al servicio. Ha enviado los valores de los parámetros en la parte del encabezado de la solicitud, lo cual es incorrecto. Los valores se envían en el cuerpo de la solicitud y no en el encabezado de la solicitud. Además, tu sintaxis es incorrecta. La sintaxis correcta es: {"user":"user_val","password":"password_val"}. compruebe también cuál es el tipo de contenido. Debe coincidir con el tipo de contenido que ha configurado para su servicio.

pan1490
fuente
7

Esta parece una pregunta muy antigua, pero estoy dando una respuesta para que pueda ayudar a otros. Puede especificar las variables en la segunda pantalla en la sección del formulario, como se muestra a continuación o en el formato RAW agregando las variables como se muestra en la segunda imagen.

Especificar variables de formulario

Especificar en formato RAW

Si sus variables y sus valores son válidos, debería ver una respuesta exitosa en la sección de respuesta.

Ángela
fuente
¿Qué pasa si es una solicitud GET?
Dejell
Tuve que establecer el encabezado Content-Type explícitamente, con el valor: application / x-www-form-urlencoded
shasi kanth
6

El formato de acceso directo que se utiliza generalmente para la autenticación básica es http://username:[email protected]/path. También querrá incluir el encabezado de aceptación en la solicitud.

ingrese la descripción de la imagen aquí

Abrahán
fuente
Gracias. Recibí una respuesta que incluía lo siguiente: <p> Falló la verificación de CSRF. Solicitud cancelada. </p> ¿Cómo puedo solucionarlo?
Saqib Ali
Parece que no está alcanzando un punto final de API, sino que está alcanzando un punto final para que lo haga JavaScript.
abraham
Esta suele ser una buena solución, a menos que su UID o PWD incluya los símbolos ":" o "@".
Blamkin86
Es posible que tenga que codificar en URL el nombre de usuario / contraseña si contienen caracteres reservados.
abraham
Estaba tratando de usar su solución para el comando GET en HTTPS y no funcionó. ej. usuario: @ api.com / v2 / envios Funciona en curl. ¿qué está mal? no hay contraseña
Dejell
3

en la sección del encabezado tienes que escribir

Autorización: Basic aG9sY67890vbGNpbQ ==

donde cadena después de básico es el valor de codificación de 64 bits de su nombre de usuario: contraseña. Un ejemplo de php para obtener los valores del encabezado es: echo "Autorización: Básico". base64_encode ("myUser: myPassword");

nb: asumí que su método de autenticación era básico. que también puede ser diferente.

Muktadir
fuente
La pregunta se refiere específicamente a cómo hacerlo en la extensión de Chrome Advanced Rest Client.
Shauna
La respuesta de Shauna fue correcta y debería ser la respuesta aceptada, pero este comentario de sharif también es útil para aquellos que tienen curiosidad por saber qué ha hecho el cliente Chrome Advanced Rest para codificar el usuario y la contraseña. Gracias.
Deemoe
3

Agregue el encabezado de autorización y haga clic en el botón de lápiz para ingresar el nombre de usuario y las contraseñas

ingrese la descripción de la imagen aquí

Ahmad Nadeem
fuente
0

La forma más sencilla de superar este problema de autenticación es robar el token de autenticación con Fiddler.

Pasos

  1. Enciende el violinista y el navegador.
  2. Navegue por el navegador para abrir la aplicación web (sitio web) y realice la autenticación requerida.
  3. Abra Fiddler y haga clic en HTTP 200 HTML page request. Capturando el valor de las cookies usando Fiddler
  4. En el panel derecho, desde los encabezados de la solicitud, copie el valor del parámetro del encabezado de la cookie. ingrese la descripción de la imagen aquí
  5. Abra el cliente REST y haga clic en la pestaña "Formulario de encabezado" y proporcione el valor de la cookie del portapapeles.

Haga clic en el botón ENVIAR y obtendrá los resultados.

Praveen Kumar Thalluri
fuente