API testing tool
When I first looked for an API testing tool a few years ago, at first I found some stuff with really, really poor UX, and then someone recommended me Postman. It wasn’t very satisfying (seriously, all those tools aimed at developer or power-users and that don’t let you choose their installation folder… so stupid), but since I didn’t need to do much with it, I settled for making a portable version of it and using that.
That was until that time where I had to make an HTTP request with very specific headers. I found out that Postman adds a bunch of crap default headers, and… you just can’t turn that off. People have ranted about that major issues for years, and Postman hasn’t given a crap about it. Yup. There too.
Anyway, so I looked for something else, and I eventually found Advanced REST Client. Like Postman, it’s Electron-based, so it works pretty much everywhere. Unlike Postman, it’s free, libre, open-source software. And it allows crafting requests with no automatically enforced headers (note that by default it will add user-agent: advanced-rest-client
and accept: */*
, but this can be disabled in the settings).
Sadly they don’t provide a portable package but, on Windows, you can open setup.exe with, for instance, 7-Zip, and then manually extract $PLUGINSDIR/app-64.7z
, which contains everything needed to run the 64 bits version of ARC.
Apart from the ability to finally have full controls of requests and headers and the fact that it’s FLOSS, here are other things I like about it:
- it seems to work well with RESTful API Modeling Language (RAML) (haven’t tried it yet)
- it seems to work well with OpenAPI Specification (OAS) (ditto)
- it allows setting up hosts rules (more convenient than editing the hosts file for testing purposes)
- it seems to be pretty privacy-friendly, although it should be noted that data sharing is opt-out rather than opt-in
Last but not least, when you create a request, it shows you code to run it with cURL, JavaScript, Python, C and Java, as well as the raw HTTP request. Which is convenient for copy/pasting code, but more importantly which is great for knowing exactly what request was sent, without resorting to annoying tricks like running Wireshark (which is a bit ridiculous when you’re the one supposed to be in full control of the request in the first place)
Update on 2024-12-30
Looks like the project has been abandoned over 2 years ago, with a last version, along with the last commits, published on 2 March 2022. It’s not such a big issue as the last version works mostly fine, but I don’t think we can expect any more update to it. I recently installed and used the latest version, and it actually had an annoying bug where, after closing it, it would still be silently idling, invisible, in the background. Had to kill 4 or 5 processes like that (hurray for Chrome-based crap, it spawns processes like rabbits), manually with the Task Manager, to properly shut it off.
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.