views:

393

answers:

7

What tools are recommended to aid in developing RESTful web services? For instance, a good front end for manually calling REST APIs, and a TCP/IP or HTTP monitoring tool seem like good starting points. I am looking for specific product recommendations. OS X recommendations would also be helpful.

+1  A: 

Fiddler, Wireshark, Firebug, and Visual Studio.

eed3si9n
+2  A: 

I use Poster (a FireFox plugin) for manually calling REST web services:

https://addons.mozilla.org/en-US/firefox/addon/2691

(I find the UI is difficult to work with and would like something better.)

landon9720
+2  A: 
  • Use the browser of your choice to test your urls. Ideally a restful service can be consumed by any browser.
  • For monitoring I'd use either Fiddler or wireshark. Fiddler is definetly easier.

Edit

For posts, and the other verbs you can use Fiddler as well to submit the requests. As for handling the application/json, I would use fiddler to look at the results, I'm sure you could define a handler to handle the app/json mimetype but I don't know how to go about that off the top of my head.

JoshBerke
Can you use a browser for verbs other than GET?
landon9720
Another problem with the browser is that it opens the open file/save file dialog for URLs that return contentType: application/json. Is there a workaround for this?
landon9720
+1  A: 

There is a WcfTestClient included with VS2008 here:

"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\WcfTestClient.exe"

It allows you to explore web services and make calls to them.

Fiddler is also good, as already mentioned.

Scott Whitlock
Any OS X recommendations?
landon9720
@landon9720 - nope, sorry!
Scott Whitlock
A: 

I tend to use curl for basic smoke testing of the various output types and verbs.

You can use REDbot to find a lot of subtle issues.

Hank Gay
A: 
  • rest-client - java app, quite mature
  • RestClient - ruby DSL, very handy
  • Charles - another java app, HTTP proxy, monitor reverse proxy (paid)
Milan Novota
A: 

soapUI (the free version) has always been very useful for me. It handles REST webservices too - see the examples in the getting started section.

penguintux