2008-10-03 24 views
54

Estoy buscando una manera fácil de depurar los servicios RESTful. Por ejemplo, la mayoría de las aplicaciones web pueden depurarse usando su navegador web promedio. Lamentablemente, ese mismo navegador no me permitirá probar HTTP PUT, DELETE y, hasta cierto punto, incluso HTTP POST.¿Cómo depurar los servicios RESTful?

No estoy buscando para automatizar las pruebas. Me gustaría ejecutar nuevos servicios a través de un control de cordura rápido, idealmente sin tener que escribir mi propio cliente.

Respuesta

32

Utilice una herramienta existente de 'cliente REST' que hace que sea fácil inspeccionar las solicitudes y respuestas, como RESTClient.

+0

Ambos parecen herramientas extremadamente interesantes, ¡gracias por los consejos! – rjray

+0

estoy usando el primero, funciona simplemente bien para mí. – Forhad

+0

Escribí un complemento de cliente REST llamado Solicitante de texto sublime, https://github.com/kylebebak/Requester. Está inspirado en HTTPie y Postman. Es muy potente y fácil de usar, y es multiplataforma. Si no está enamorado de su cliente HTTP definitivamente vale la pena intentarlo. – kylebebak

4

Puede utilizar violinista de Composer para depurar restful services ..

Actualizado JD 12 Sep 2013: Resto Constructor se llama ahora Compositor.

+0

el enlace para solicitar Constructor anterior se ha roto. – helcim

0

Además de usar una de las herramientas en la respuesta de Peter Hilton, tendría que decir que la única opción es escribir las pruebas con LWP o alguna herramienta similar. Usted podría omitir el uso de LWP simplemente abriendo un socket, enviando una solicitud HTTP sin procesar y examinando lo que obtiene a cambio. Pero hasta donde yo sé, hay una escasez de herramientas de prueba para este tipo de dominio. La mayoría de las miradas en este problema, el espacio principalmente desde el objetivo de un desarrollador de sitio web, y para ellos, el navegador es suficiente plataforma de prueba. .

3

cURL funciona bien.

0

Uso restclient, disponible en Google Code. Es una aplicación Java Swing simple que admite todos los métodos HTTP y le permite un control total sobre los encabezados HTTP, conneg, etc.

0

Tiendo a escribir pruebas unitarias para recursos RESTful usando Jersey que viene con un buen cliente REST. Lo bueno es que si implementa sus recursos RESTful utilizando JAX-RS, el cliente de Jersey puede reutilizar los proveedores de entidades como JAXB/XML/JSON/Atom, etc., para que pueda reutilizar los mismos objetos en el lado del servidor que usted usar en la prueba de la unidad del lado del cliente.

Por ejemplo, here is a unit test case del Apache Camel project que busca las cargas XML de un recurso REST (utilizando los puntos finales del objeto JAXB). El método de recursos (uri) se define en this base class que solo usa la API de cliente de Jersey.

p. Ej.

clientConfig = new DefaultClientConfig(); 
client = Client.create(clientConfig); 

resource = client.resource("http://localhost:8080"); 
// lets get the XML as a String 
String text = resource("foo").accept("application/xml").get(String.class); 
15

En mi oficina que utilizan una variedad de diferentes herramientas y enfoques para probar los servicios REST:

  • Escribimos cURL guiones - esencialmente un solo comando guardado en un archivo. Un archivo por recurso por método. Para PUT y POST, generalmente tendremos archivos que contienen las representaciones para enviar junto con el script cURL. Por ejemplo, para un recurso de buzón, podríamos tener un archivo llamado mailbox_post.cmd, que podría contener la línea curl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox. Nos gusta este enfoque porque terminamos construyendo una colección de pruebas que pueden ejecutarse en un lote, o al menos transmitirse entre los evaluadores, y usarse para las pruebas de regresión.

  • Utilizamos Curl y RESTClient para ad-hoc tests

  • Tenemos el servicio sirven XHTML de forma predeterminada, por lo que es navegable, y añadir recursos formas, por lo que el servicio es en realidad parcial o totalmente comprobable mediante un navegador . Esto se inspiró en parte en algunas partes de RESTful Web Services, donde los autores muestran que la línea entre los servicios web y las aplicaciones web puede no necesitar ser tan sólida y estricta como se suele suponer.

  • Escribimos pruebas funcionales como Groovy cierres, usando el marco Restlet, y ejecutamos las pruebas con un script de prueba Groovy. Esto es útil porque las pruebas pueden ser estables, compilarse entre sí y compartir variables, cuando corresponda. Encontramos que la API de Restlet es simple e intuitiva, y es tan fácil escribir solicitudes HTTP rápidas y probar las respuestas, y es incluso más fácil cuando se usa en Groovy. (Espero compartir esta técnica, incluyendo el guión corredor de prueba, en our blog pronto.)

5

Una herramienta que he encontrado útil si se está ejecutando OS X Leopard:

HTTP Client

Es un programa de GUI muy simple que le permite elaborar solicitudes http a un recurso y ver la respuesta.

2

RESTTest para Firefox (un complemento). Fiddler para IE.

+0

RestTest ha sido desactivado (12 sep 2013) –

0

Firefox tiene RESTClient plug-in para enviar solicitud diferente con los métodos, los parámetros, las cabeceras etc.

0

Ustedes deberían verificar la extensión poster para firefox, es simple y lo suficientemente útil como para usar :)

12

Postman, una extensión de Google Chrome, puede ser útil.

+0

Esta es una extensión relativamente nueva, pero simplemente por la capacidad de guardar conjuntos de solicitudes, y administrarlas/compartirlas + una interfaz agradable, lo recomendaría muy altamente. – ocodo

+0

Cartero también podemos cargar solicitudes de archivos como datos de varias partes – R2R

2

Estoy usando Soap UI para probar mi REST API.

Es más completo que cualquier otra herramienta:

  • solicitudes de depuración fina y respuestas
  • pruebas automatizadas
  • toda GUI basada
  • propiedades y propiedades de transferencia para parametrizar sus pruebas
  • condicional probando
  • pruebas de rendimiento

No estoy trabajando para SmartBear. Ya era un gran admirador de SoapUI mientras lo usaba para SOAP WebServices.

My SoapUI REST Project

3

me terminaron de colocar en POSTMAN

Es compatible con todas las características REST se me ocurrieron, y la interfaz de usuario es absolutamente excelente. El único inconveniente es que requiere Chrome.

8

He encontrado que RequestBin es útil para depurar solicitudes de REST. Publicar en una URL única y los datos de solicitud se actualizan/muestran. Puede ayudar en un apuro cuando otras herramientas no están disponibles.

http://requestb.in/

Cuestiones relacionadas