restful example entre ejemplo diseño diferencia debugging http rest

debugging - entre - rest api example



¿Cómo depurar los servicios RESTful? (17)

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. Puede 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. .

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.

No estoy buscando 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.


En mi empresa utilizamos una variedad de diferentes herramientas y enfoques para probar los servicios RESTful:

  • Escribimos scripts cURL , 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.

  • Usamos cURL y RESTClient para pruebas ad-hoc

  • Tenemos el servicio que sirve XHTML de forma predeterminada, por lo que es navegable y agrega recursos de formularios, por lo que el servicio es parcial o totalmente comprobable usando 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 cierres Groovy , utilizando el marco Restlet , y ejecutamos las pruebas con un script Groovy de corredor de prueba. 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, incluida la secuencia de comandos del corredor de pruebas, en nuestro blog pronto).


Estoy usando la interfaz de usuario de Soap para probar mi API REST.

Es más completo que cualquier otra herramienta:

  • solicitudes y respuestas correctas de depuración
  • pruebas automatizadas
  • toda la GUI basada
  • transferencia de propiedades y propiedades para parametrizar tus pruebas
  • prueba condicional
  • pruebas de rendimiento

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


Firefox tiene RESTClient complemento RESTClient para enviar solicitudes diferentes con métodos, parámetros, encabezados, etc.


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/




Terminé POSTMAN con POSTMAN

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


Tiendo a escribir pruebas unitarias para recursos RESTful utilizando 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, aquí hay un caso de prueba unitaria del proyecto Apache Camel 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 esta clase base que solo usa la API del cliente 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);


Una herramienta que encontré útil si está ejecutando OS X Leopard:

Cliente HTTP

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


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


Utilice una herramienta existente de ''cliente REST'' que facilite la inspección de solicitudes y respuestas, como RESTClient .


Yo uso restclient, disponible en RESTClient . 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.




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


cURL funciona bien.