web-dev-qa-db-fra.com

Comment déboguer les services RESTful?

Je recherche un moyen simple de déboguer les services RESTful. Par exemple, la plupart des applications Web peuvent être déboguées à l'aide de votre navigateur Web moyen. Malheureusement, ce même navigateur ne me permettra pas de tester HTTP PUT, DELETE et, dans une certaine mesure, même HTTP POST.

Je ne cherche pas à automatiser les tests. Je voudrais exécuter de nouveaux services grâce à une vérification de santé mentale rapide, idéalement sans avoir à écrire à mon propre client.

57
Gili

Utilisez un outil "client REST" existant qui facilite l'inspection des demandes et des réponses, comme RESTClient .

34
Peter Hilton

Dans mon cabinet, nous utilisons une variété d'outils et d'approches pour tester les services RESTful:

  • Nous écrivons des scripts cURL - essentiellement une seule commande enregistrée dans un fichier. Un fichier par ressource et par méthode. Pour PUT et POST, nous aurons généralement des fichiers contenant les représentations à envoyer avec le script cURL. Par exemple, pour une ressource de boîte aux lettres, nous pouvons avoir un fichier nommé mailbox_post.cmd, qui peut contenir la ligne curl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox. Nous aimons cette approche parce que nous finissons par construire une collection de tests qui peuvent être exécutés dans un lot, ou au moins transmis entre les testeurs, et utilisés pour les tests de régression.

  • Nous utilisons cURL et RESTClient pour les tests ad hoc

  • Nous avons le service servir XHTML par défaut, donc il est navigable, et ajouter des ressources de formulaires, donc le service est en fait partiellement ou entièrement testable en utilisant un navigateur. Cela a été en partie inspiré par certaines parties de RESTful Web Services , dans lesquelles les auteurs montrent que la ligne entre les services Web et les applications Web n'a pas besoin d'être aussi solide et stricte qu'on le suppose habituellement.

  • Nous écrivons les tests fonctionnels sous la forme de fermetures Groovy , en utilisant le framework Restlet , et exécutons les tests avec un script Groovy de lanceur de test. Ceci est utile car les tests peuvent être avec état, s'appuyer les uns sur les autres et partager des variables, le cas échéant. Nous trouvons que l'API de Restlet est simple et intuitive, et si facile à écrire des requêtes HTTP rapides et à tester les réponses, et c'est encore plus facile lorsqu'il est utilisé dans Groovy. (J'espère partager cette technique, y compris le script du testeur, sur notre blog bientôt.)

15
Avi Flax

Postman , une extension Google Chrome extension, peut être utile.

13
Yasin Okumuş

J'ai trouvé RequestBin utile pour le débogage des demandes REST. Publier sur une URL unique et les données de demande sont mises à jour/affichées. Peut aider en cas de pincement lorsque d'autres outils ne sont pas disponibles.

https://requestbin.com/

8
John Hodorowicz

Un outil que j'ai trouvé utile si vous utilisez OS X Leopard:

client HTTP

Il s'agit d'un programme GUI très simple qui vous permet de créer des requêtes http vers une ressource et d'afficher la réponse.

5
vamin

Vous pouvez utiliser le fiddler Composer pour déboguer services reposants ..

Mise à jour de JD 12 sep 2013: Rest Builder est maintenant appelé Composer .

4
Gulzar Nazim

cURL fonctionne très bien.

4
Hank Gay

J'ai fini par m'installer FACTEUR

Il prend en charge toutes les fonctionnalités REST auxquelles je pourrais penser, et l'interface utilisateur est absolument excellente. Le seul inconvénient est qu'il nécessite Chrome.

3
Gili

J'utilise Soap UI pour tester mon REST API.

Il est plus complet que tout autre outil:

  • demandes et réponses de débogage fines
  • tests automatisés
  • tous basés sur l'interface graphique
  • propriétés et transfert de propriétés pour paramétrer vos tests
  • test conditionnel
  • test de performance

Je ne travaille pas pour SmartBear. J'étais déjà un grand fan de SoapUI en l'utilisant pour SOAP WebServices.

My SoapUI REST Project

2
Tony Baguette

RESTTest pour Firefox (un module complémentaire). Fiddler pour IE.

2
system PAUSE

J'utilise restclient, disponible sur Google Code . C'est une simple Java Swing application qui prend en charge toutes les méthodes HTTP et vous permet un contrôle total sur les en-têtes HTTP, la conneg, etc.

0
Ian Dickinson

parce que c'est totalement manquant ici: https://luckymarmot.com/Paw

Vaut toujours un sou ...

0
Toby

J'ai tendance à écrire des tests unitaires pour les ressources RESTful en utilisant Jersey qui est livré avec un client Nice REST. La bonne chose est que si vous implémentez vos ressources RESTful en utilisant JAX-RS, alors le client Jersey peut réutiliser les fournisseurs d'entités comme pour JAXB/XML/JSON/Atom et ainsi de suite - vous pouvez donc réutiliser les mêmes objets côté serveur que ceux que vous utilisez dans le test unitaire côté client.

Par exemple voici un cas de test unitaire du projet Apache Camel qui recherche les charges utiles XML à partir d'une ressource RESTful (en utilisant les points de terminaison de l'objet JAXB). La méthode resource (uri) est définie dans cette classe de base qui utilise uniquement l'API client Jersey.

par exemple.

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);
0
James Strachan

En plus d'utiliser l'un des outils dans la réponse de Peter Hilton, je dois dire que l'écriture de scripts avec LWP ou un outil similaire peut être votre seule option. Vous pourriez contourner l'utilisation de LWP en ouvrant simplement une socket, en envoyant une requête HTTP brute et en examinant ce que vous obtenez en retour. Mais pour autant que je sache, il y a une pénurie d'outils de test pour ce type de domaine - la plupart regardent cet espace de problème principalement à partir de l'objectif d'un développeur de site Web, et pour eux, le navigateur est assez une plate-forme de test .

0
rjray

Firefox a RESTClient plugin pour envoyer des requêtes différentes avec des méthodes, des paramètres, des en-têtes, etc.

0
Amit Patel

Si vous voulez un outil gratuit dans le même but avec une fonctionnalité supplémentaire de soumission de données de formulaire en plusieurs parties, c'est ici http://code.google.com/a/eclipselabs.org/p/restclient-tool/

0
Yadu

Vous devriez vérifier l'extension poster pour Firefox, c'est assez simple et utile à utiliser :)

0
nXqd