Insomnia 3.0 – A simple and beautiful REST API client
insomnia.rest
insomnia.rest
ie. GET /things -> GET /things/{things.first.id} -> PUT /things/{things.first.id} -> DELETE /things/{things.first.id}
I'll be interested to hear when you have some sort of chaining or environment variable setting in place.
I know from experience as an iOS developer (then Python backend guy) that when working on a given project, our mind is already full of business logic. We don't want to add another level of complexity due to the tools we use. And we're writing enough code elsewhere to not want to write code in an app.
As of scripting used for "unit" testing, we have thought about it many time for Paw. And while we will do something somewhat related in the near future, it's a slippery slope. A robust API should have unit tests written with mocks and be part of the server code, not a few assertions made in a 3rd party app. We're quite biased here: many users want this feature, but we don't want to encourage bad practices (as it may be interpreted by some as "ok let's not write proper tests, there's Paw for that").
Anyway, that was to share my point of view as a Paw guy :)
Tip: I suggest removing the 'pricing' menu option on the top of the web site. I saw it immediately the first time I went to your site, and I assumed yours was a paid product, so I stopped there and closed the window. It was only when I went back later and scrolled through, I noticed the current version is free for now. Removing the 'Pricing' link may make other people stick around longer to take a look...
No back to "businesses". When I see a free version and a paid version, and I know the difference, I can decide whether I want to use the free version, pay for the paid version or use neither.
However when I see "everything free for now but paid version later, the difference between the 2 unclear", it worries me that there will be some bait-and-switch, and the free version will be gimped or will get ads.
The world, the Internet, and in particular revenue models for software and services have changed significantly since the 90's.
If I land on some project's Github page I'm not going to be looking for pricing.
If I land on the marketing site for an app I'm going to assume it's a business and look for pricing first.
I remember the 90's too. You didn't have half the dark pattern/bait-and-switch/datamining revenue models that are commonly seen these days (and there are enough companies that have left users high and dry at the end of their "incredible journey" that app/business longevity is also a valid concern).
And so now, in 2016 I'm more cynical and one of the first things I want to know when I come across a potentially interesting app/product is how they plan to make money off me.
If it's all open source, great, say it up front. If it's free with various premium options, fine, say it up front. If it's subscription based service, no problem, say it up front.
Just don't hide the pricing page (or the open source branding) from the front of your site, which is the context in which I made my comment.
Not like "download free for <platform>" (as it is now on this site), but as "free to use, download for <platform>" or something similar.
If you're always going to have a free version, great put that on the pricing page along with any premium options, but don't make me go hunting through your site to find what paid options you have.
It is just that in this circumstance, I am already a happy user of the (free) Postman API testing app, and whenever I see anyone talk about a new API testing tool, I am keen to check it out. However, if the other product is a 'paid for' product, then it has to be VERY compelling indeed to make me switch from the free one I am already using.
For instance, I (and many others) think that Paw is worth the licence fee. It sounds a great product and is well worth the money. But for me, I didn't see any solid reason to switch to Paw from Postman unless I came across an absolutely killer feature that I could not live without.
In Insomnia's case, I was ready to dismiss it because I read about the simplicity of the interface, and I saw a 'Pricing' link on the web page. I immediately assumed it was a paid licence product, which meant that it immediately fell outside any compelling reason for me to even trial it.
Later, when I saw that it was an always free piece of software, it immediately went back on my radar as something I should check out as a possible replacement for Postman.
If it is as good as others say, then I do sincerely hope that the author finds some way to monetise it via some sort of Pro subscription etc. in the future.
My point is that the presence of a Pricing page (which I admit is one of the first things I look for when I visit any app or service page) could mislead people into thinking it is a strictly paid-for app, when in fact it is not.
For consumer/small business related apps/services, if I don't see pricing linked or mentioned on the home page, I assume that it is quite expensive and that the developer/company believes the same too, thinking that people will balk on seeing the price and that they can somehow be convinced to sign up first (so they can be marketed to) and then pay what's demanded after reading the long list of features or other fluff they put up.
I think the best alternative is to put a callout in your header somewhere that says something like "Basic version of Insomnia is free forever". Then retain the Pricing page for people who may be curious about your 'Plus' version.
Thanks for the comment! Downloading the app!
A while ago I took a stab at building my own Postman alternative, Pragma [1]. What I found was that getting the basic functionality going is obviously not that hard, but building a good and useful UI requires quite a bit of effort.
I'm the founder of Paw https://paw.cloud and I can safely say that building a good UI is a lot of work. While Paw is built on native Cocoa/AppKit (OS X app framework), the challenges with web are different, but the amount of work is always here. Each custom control, tweak on the text fields and other sorts of custom behaviors are taking a lot of time to imagine, design and implement. But it's a lot of fun too!
Clearly Insomnia is one of these apps where by just landing on the website you know that it's made my someone who has a good taste and who pays attention to details. As of the app, most common Mac shortcuts are working. And the fact that you cannot open the Chrome console (Cmd+Shift+I) or select text outside of user inputs are a proof of a well polished product.
It's often hard to make a point about polished UIs because it's highly subjective and it's common to see people wanting to compare only "raw features" between two products.
I'm not a big fan of Electron apps, and Paw and Insomnia are somehow competing (one native, full-featured with extensions and dynamic values, team syncing…the other being a more lightweight version), but I must admit that Insomnia is nicely made! :)
The hardest part for me is always a "good" UI, I can make it useful, but getting it to look good, smooth and feel pleasant is the biggest challenge.
What are you main goals as far as being different from Paw, which is what I use and love thus far?
*edit: oh and congratulations on getting your app out there :)
The goal for Insomnia is to build a REST client that's easy to learn and a joy to use. I looked into other REST clients before starting Insomnia and found them to be cluttered and complicated. Paw was my favourite, but I needed something cross-platform so was unable to use it.
I'm not saying you made the wrong choice, but why do you say that, given the various options for cross-platform development (Qt, Mono, etc)?
When someone asks in which lang should he implement a webapp/SaaS/whatever, the first comment is to use the tech he knows the most. Why so much hate when the same principle is used for desktop app development?
Something like qt is just as cross platform without the performance penalty... So I am sad you took this choice :(
I would love to produce a tutorial that has well formatted URLs with params, bodies, headers and pre-saved results that could also be rerun against local server.
Which brings me to: I just use Python snippets if I want to test a REST API quickly. What am I missing out of by not using these tools?
If I am writing a tutorial using REST calls, wrapping them in Python syntax is less than effective as a presentation. It also requires Jupiter backend running, which could be a burden to host for a popular multi-user tutorial.
It is something that O'Reilly is experimenting right now with their interactive tutorials, but even for them, it is early days.
Edit: I do not mean to undermine the effort, just wondering if Postman users have any incentive to switch.
(matthaus, backend dev on https://paw.cloud)
Insomnia is still in early stages, so if you have any feedback or suggestions I'd love to hear!
P.S. Insomnia also has code generation https://insomnia.rest/documentation/code-snippets/
- Is there a way to override the cookies of a single request? Or do you have to edit the cookie jar and the corresponding cookies get auto-sent (ie. no override)
- For authorization, do you have built-in support for OAuth 2.0 access/refresh token flows? What about OAuth 1 ?
- Do you support HTTP/2?
- there is no way to override cookies per request yet, but that's good feedback :) - I'm working on OAuth support soon so keep an eye out for that - HTTP/2 support isn't in the works yet, but is on the roadmap
Thanks for the comment!
And its UX is not great, particularly when it comes to switching between tabs, closing them, saving requests, etc.
I'm uninstalling and re-downloading it but just wanted to let you know.
I use it for testing, but also more as a diagnostics/control panel for a software suite that we expose via a growing HTTPS API - saving the requests and payloads makes this easy.
One thing I miss from RESTClient is the formatting. We have a small JSON DSL that we exchange data with, so those strings have to be escaped going up, and of course they come back with all the escapes. In RESTClient, you could view the response "formatted", which would un-escape those strings. This made for easy copy and manipulation.
[0]: https://www.elastic.co/guide/en/sense/current/introduction.h...
Using environment variables in headers or request params was a bit disappointing though. The UI keeps replacing the reference with a copy of the current value when input field is moved out of view. Is this the intended behavior?
A frictionless way to write tests on the fly would really speed up spotting these deviations.
I'd love to hear what you're planning on working on next and how you plan to monetize (if you're going to) :)
My current plan for monetization is to add multi-device sync (almost ready for beta) then team collaboration features shortly after. There are also some advanced features left to implement like OAuth support, scripting (settings environment variables from response data), and a few others.
Thanks for the comment!
It sounds like you're taking suggestions so my only one would be configurations that make working with OAuth simpler like OAuth signature generation.
Great work!
I think developers have a tendency to prioritize things like pricing below the technical features.
I wrote a bit more about pricing in a past comment if you're curious https://news.ycombinator.com/item?id=12433260
Also, did anyone else instinctively try decoding that Authorization header in one of the screenshots? :-)
P.S. All the data in the screenshots is fake :P
P.S. All the data in the screenshots is fake :P
I've seen a few instances where the data would decode to something like "if you can read this, we're hiring".
Was originally open-source, there is now a paid version but an OSS version is still available.
What ever happened to Qt, WxWidgets and the like?
That being said, I will definitely have a look to see what is new.
Since everyone is putting their favorite REST client - here is my own (disclosure I am the author). I've built it to fit my own needs and combine essential features from other clients which I find useful. I looked mainly at Burp, Postman and of course Paw for inspiration.
The tool is available at the Chrome App Store here:
https://chrome.google.com/webstore/detail/rest2/oiikfajocfme...
You can also access it directly from here:
It is a work in progress but it has some features I am yet to see in other web-based REST clients, such as:
* Dynamic fields and variables that are re-computed on the fly. * Built-in text transforms that allow me to recompute a value in its original form. * Support for constructing multi-part requests with data and files easily. * The ability to modify file names and file types in multi-part requests. * Handle all headers (even those which are marked private in the Chrome and Firefox APIs). * Works in both Chrome and Firefox - on problem. * Locally cached for offline use. * All requests originate from your own machine - the tool runs locally. * Pretty-print everything including JavaScript, CSS, XML, HTML and many more. * Pretty-print any type of form and request payload. * Automatic code generator.
The reason it is a work in progress is because the current online version is at leas 3 versions behind from the libraries we use internally. We have scheduled some work to bring it up to date and we will be adding local storage and remote storage support very soon.
The tool is 100% free and it is part of our new tool stack at secapps.com. I need to say that we are revamping our current business model so that we can provide all of the tools free of charge to the larger community. These changes are not reflected on the site yet but I will as soon as the new stack is completed.
And if you are interested in these kind of stuff, here are a few more tools also free of charge:
https://chrome.google.com/webstore/detail/httpview2/nnkpnmkd... https://chrome.google.com/webstore/detail/encoder2/hlmjgnklm... https://chrome.google.com/webstore/detail/unfold2/lmgdfkfedk...
Apologies for intruding into this post but I thought there is a good opportunity to suggest some alternatives as I've seen other people do.
Insomnia is still great though and I am sure some people will prefer its looks over other clients.
That is not a "native" app.
From https://insomnia.rest/pricing/
"Native app for Mac, Windows, Linux"
Good luck with it!