Is there a native/cocoa REST client for Mac OS X?

Solution 1:

Here's one client:

http://code.google.com/p/cocoa-rest-client/

Solution 2:

This is a bit tricky to answer. REST is a style, an idiom, for software design. It isn't unto itself something you can have a generic client for. Rather, you can have tools that can interact with services via their REST-compliant APIs.

It's quite popular to use HTTP/S as the transport layer for REST-compliant APIs. And these days REST APIs can be found in a lot of web-based services. So it follows, some what naturally, that you'll find a lot of browser plugins that make it easy to do PUT, POST, GET and DELETE calls against arbitrary URLs using HTTP/S because that's where a lot of these REST-compliant services are listening and doing their thing.

If you'd rather not work within a browser you can, in OS X, quite easily move to the command line. cURL ships by default with OS X and is a rather invaluable tool for working with HTTP/S-based APIs, including ones that are REST based, but certainly not limited to just them (thought, admittedly, it's much harder to work with interfaces that require you carry state in your URL or in the body of the request, which is one of the reasons why the REST paradigm is so popular).

cURL is...unbelievably powerful. It's one of those tools that always seems to be able to do what you need it to do as soon as you've had the thought, "Man, I wish cURL could do X...". As a quick start to cURL Linux Journal has a nice primer and, of course, the official cURL website has a tutorial to help you get started.

I like real-world examples, so I'll pull this from another Linux Journal article where they give an example of posting to Twitter with cURL:

curl --basic --user "$user:$pass" --data-ascii \
   "status=testing123" https://twitter.com/statuses/update.json

With one modification: I'll make the call over https instead of http like they do in the article because there's no way I'd want to risk sending my username and password in plaintext over the public wire to Twitter.

Solution 3:

There is Paw. It is not freeware but there is a trial so you can test it. It has a lot of nice features and UX-wise it has been a pleasure to use.

Solution 4:

I've used the aptly named HTTP Client in the past to great avail. The app is deadly simply for setting custom headers, changing the user agent, testing APIs, etc.

One of the features listed on the homepage is "HTTP Basic Authentication (with Keychain integration)".

It's a simple and obvious app, and lets you review your full Request and the server's Response in detail.