Hacker News new | past | comments | ask | show | jobs | submit login
Postman: a powerful HTTP client (for Chrome) to test web services (getpostman.com)
429 points by caiobegotti on April 20, 2014 | hide | past | favorite | 140 comments



Thanks for the great comments everyone. Postman developer here. Woke up to find the link at the top of HN. Feels awesome. :)


Great job! Really useful tool.

On a side note, it's interesting how, though you posted postman on HN a couple of times before, it hit the front page only now.


It has been part of my developer toolkit for a year and I absolutely love it! I hope we can see OAuth2 auth sometime soon :)


I love Postman. It came in very handy when I was starting to develop some web apps that use POST JSON packets. Although I've since developed some cURL scripts to do equivalent tasks from the command line, I find Postman's features to still be very handy, especially history, auto-complete, and the handy GUI visual approach. Both Postman and cURL are essential tools to my work. Thanks for providing this great tool!


Thanks for your effort; the tool is fantastic! We use it every day for working with API's.


Thanks for that great tool! You're my firebug for API's.


Thanks for the great tool.

First I thought "Damn, that's no news. I use it for ages ...", but some things are worth to be reminded of from time to time.


Haha. You are welcome!


Thanks for the great tool. I use it daily at the moment. Gotten much better over the last few months as well.


I prefer cli tools for api driving/testing, and httpie[1] works pretty well for that.

[1]: https://github.com/jkbr/httpie


There are lots of things that you can do easily with postman but would be difficult with a CLI tool.


Chrome dev tools make testing RESTful backends with curl very easy: right-click on a request in network panel and choose "Copy as curl". Priceless little gem.


Can you explain this?

I would really be happy if there is any tool which give option "Copy as curl" !


https://i.imgur.com/sBGycyF.png

(would give - curl 'https://news.ycombinator.com/news.css?Iufnib6nCakqGh6wo0m6' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36' --compressed )


I doubt that completely, citation needed.


I find your response to be really arrogant. Postman is an easily installed Chrome extension that can be supplied to everyone on your team, regardless of skill level. Requiring a cli isn't as easy as a one click install - there's dependencies (Python etc.) that are required which, while easy for many, aren't as simple for a lot of web developers - especially those who focus on front end development and may just need an easy tool for inspecting API requests they need to make.

There's still a wide market for GUI based programs, and Postman is an excellent extension that I've used for years (even though I'm a CLI guy myself). It's always there, easy to use, and powerful to boot.

Edit 1: Grammar / Spelling


you didn't answer the question.

> There are lots of things that you can do easily with postman but would be difficult with a CLI tool.

the jury is still out on this one. i'm not buying it now either. you've convinced me Postman is easier for non-technical people, but i'm not convinced it's more useful or easier than a command line.


I can't use postman easily. I don't have a Google account. What do I do?


Everyone can use it easily. It's an easy tool to use. You don't need a Google account to install an extension.

> What do I do?

Install the extension and use postman easily.


Uhh how about a little more detail? I installed it, but I have no idea how to open it in a tab. Unlike my other extensions, I don't see any icon buttons next to my URL bar.

EDIT: If like me, you're using a Mac, you can use Alfred to open Postman. I still have no idea where to find the extension (I have both the extension and the "packaged app", whatever the difference is, installed on my machine)


Hmmm, I don't know. When I install it on Windows Chrome, I immediately get an icon next to the URL bar. Sorry I can't be of more help.


You don't need one? Install the add on directly.


Totally agreed. Another benefit (or set of benefits): when you've got 5 CLI tabs open already, and you're trying to remember where your curl response went, it's nice to know Postman has (a) history of recent requests in a readily clickable list, (b) a different window that's easily accessible, and (c) any saved headers and tokens that I can otherwise never remember.


Like Tesla said "if you thought a bit more, you wouldn't have to sweat so much"

All of those would be eliminated with preparation and planning. And the results would be better quality than ad hoc poking with Bash


Yeah, if we all prepared and planned perfectly for absolutely everything we do in life then we probably would need less assistance.

Meanwhile, in the real world, sometimes things have to be done fast and messily.


Testing http:// services is not one of those things


I know that there is nothing that an add-in can do that a scripting environment can't and it is not a that difficult, which is the assertion I am responding to. Sooner or later the dialog box driven tool will prevent you from doing what you want.

I would still like an example of a series of Http:// requests that is "difficult" to do with just curl, wget and a bit of shell script.


Curl is my go to tool for this sort of interaction. I have been a long time Postman user though. The number one feature it has which curl doesn't is collections. Which is basically their name for saving queries. I have my companies entire API saved in various collections which allows me to quickly do any API call without looking at documentation or having to whip up so JSON boilerplate.

For more advanced or one off testing, curl would still be my go to.


I have a "collection" of curl command lines aliased in my ~/.bash_aliases file. Maybe something like that would help you?


I agree that CLI are awesome and you can do way more using it that with any other UI (specially a web one), but taking HTTP API testing as an example, postman lets you do a bunch of stuff that are so simple with one click that I can see some people not wanting to dive in the CLI world, write a bunch of stuff and also having to store environment data for requests with extra files (I think thats where the 'difficult' from the previous comment comes along, but that's just me guessing...)

Taking that into consideration, Postman's web interface lets you

- See all the request history that you can easily reply any of them with one click

- Save requests and share them (including a collection of requests)

- Have and share environment variables to change, for example, between production and development API urls, password, params, etc (I know, a CLI also lets you do that, but it soooo simple to just select and preview the environment variables from the list)

- easily handle oAuth and other authentication forms out of the box

But you will suffer (a lot) trying to use Postman to - Handle binary input/outputs

- Stream responses

- Handle cookies

So, depending on what your day to day problems are you should use a different tool... Oh, and I didn't know about HTTPie, thanks for sharing :)


None of those things are intractable, I have had scripts handle them all. On top of that, writing scripts educates you on how such systems work. It really isn't challenging.


Sure. I can script a lot of things and have learned a ton by doing that. But when I'm focused on making an API or debugging one, I don't want to spend the time writing a script if there is a readily available tool that does what I need. I can better spend the time improving the app.


Care to share them? It sounds like a lot of people would like to use them instead of Postman.


I like httpie but the app can do a lot more than sending requests now (which you might not be able to do in a CLI tool). You can write tests and run a bunch of requests together to simulate different scenarios: http://www.getpostman.com/docs/jetpacks_writing_tests.


Here's a library in Haskell if you are inclined to do this with an embedded domain-specific language instead:

http://hackage.haskell.org/package/http-test


Then throw HTTPie into a bash script.


I use Rested, it's a simple, cheap, mac app and works great. http://www.helloresolven.com/portfolio/rested/

EDIT: Why the hell was I downvoted for suggesting a good app? goddammit...


http://ycombinator.com/newsguidelines.html Resist complaining about being downmodded. It never does any good, and it makes boring reading.


In addition to the other suggestions, there is also the usual suspects:

  * fat fingered an upvote
  * vote ring detection evasion bot randomly selected you
    for an upvote


probably because your suggesting a paid app to solve a problem that is well solved by free ones


Also a Mac app when the original app works across platforms


I would say an app for chrome is just as accessible as an app for mac.


Chrome can be quickly installed (free) on all platforms. If I don't have a Mac, which I don't, how would I install this Mac application?


Not sure but potentially because your comment is a bit tangential.... If you anchor your recommendation to Postman in some way then it may make a stronger statement and/or take the conversation in an interesting direction?

Can you tell us how Rested compares with Postman in terms of features and any pros/cons you found?


This looks great! Thanks a lot for the recommendation, I'm going to buy it now. Postman also looks good so installed that too!

(I think your comment was fine - it serves a similar purpose so if people are interested in this thread there is a good chance [like me] they might be interested in this too.)


I auditioned about 10 different Chrome/Firefox extensions to send HTTP requests and this was by far the best one. It's clean, simple to use, and handles auth really well.


Do you remember your favorite for firefox? I have never found one that I was very happy with.


you might want to give restclient a go: been using it nearly daily for the last year and am quite happy with it. http://restclient.net/


I have tried RestEasy with FF and found it to be good.


I've been using Postman for quite a while now and it's really handy. You can save requests in collections so you can rerun the same requests for testing purposes. It's great if you're deving a REST API and need a simple client for basic testing.


It's also great for sharing collections of API calls as a sort of live demo.


Would be perfect if it can stop being a chrome packaged app though. The window switching in OS X makes it really hard for me to get to it when I have a chrome window open at the same time.

I wish it could be wrapped in a native app or even just let it run in a chrome tab.


What behavior are you looking for? I noticed that recently (maybe with a Chrome update?) that packaged apps run/show up as independent apps in the OS X task switcher.


Trying to improve Cmd + Tab behavior on all platforms. This is really a Chrome issue and am waiting for improvements in the platform.


If you're looking for something with a lot of great features for in a web app that you can leave running in a tab check out our product: www.runscope.com It's great for recording http calls, editing and retrying and sharing. Plus we've got test suites and can import your Postaman collections to help get you started!


Believe it or not, Postman was better (used to run inside a tab instead of its own window)

Edit: here it is, both the extension (tab) and the packaged app (window): https://chrome.google.com/webstore/search/postman?hl=en


Yes, I know about that POSTMAN used to run inside a tab, but it seems to have been abandoned for quite some time. I still have it installed, but it still telling to to 'upgrade' to the packaged app.

That Postman extension that you linked, I actually didn't know about this before, but that doesn't seems like something provided by the original developer. Any idea whats the story behind it? EDIT: Nevermind, just Googled the domain. Its the same developer.


The earlier app ran as a "legacy" Chrome app. Chrome has deprecated those style of apps and it's not accepting new submissions for legacy apps. I can only push updates now. The newer style Chrome apps run in a sandbox and have access to better APIs. This allows Postman to have features like collection runner, test scripts, OAuth 2 etc. Unfortunately, window management is a bit screwed up and am hoping support improves there from Chrome's side.


Slightly off topic but look into witch (http://manytricks.com/witch/) for better OSX window switching. I have alt+tab configured to switch between windows on the current desktop that aren't hidden.


Packaged apps can make requests without being subject to the normal XHR security rules (e.g. no Cross-Origin request problems), among other features like native TCP/UDP sockets.


Command + backtick will help in those cases. :)


Yes, but for me, most of the time it's more of a Cmd+Tab to Chrome from my iTerm or ST, and then Cmd+` several times to finally find it.

And when you do it hundreds of times, it gets seriously tedious.


Yeah I know that feeling. Thankfully, virtual desktops + 3 monitors has fixed that for the most part, but that's not always usable in some circumstances. I only posted that, as I only found out about it a month ago myself

The other thing I've done (with Zed in particular) is put the icon for the packaged app into my dock, so I can get to it quickly from anywhere. Of course, this becomes unwieldy if you have a lot of them in there!


Zed is also packaged as a standalone app now.


How many monitors/desktops are you running? Have you thought about increasing it?

I have 6 desktops running on 2 physical monitors and keep windowed things easily accessible. Nothing more than two swipes away.


{ Full disclosure, I'm the author of WCFStorm.Rest }

If you're on Windows and is looking for an alternative, check out wcfstorm.rest (http://www.wcfstorm.com/wcf/learn-more-rest.aspx). It has a lot features similar to postman and adds some more, like saving requests and responses into functional test cases which includes a showing a graphical "diff" between the actual and expected responses as well as being to define custom validation rules that is executed against the http response. It can also do a single load test as well a distributed load test using several machines (http://www.wcfstorm.com/wcf/how-to--distributed-performance-...)

WcfStorm.Rest is a paid software but it has a LITE version which is available for free and works well for ad-hoc testing and exploring REST API endpoints.


I am surprised how many people didn't know about Postman.

It's an amazing tool. I have been using it almost daily since long back.


I love the importing/exporting of collections. Makes sharing with my team so simple.


I find Advanced REST Client is more friendlier

https://chrome.google.com/webstore/detail/advanced-rest-clie...


I've been using Postman for a while. Overall, very impressed as it was intuitive straight from the first use. However, when putting files in a post request, it doesn't remember the files for you. Also, there is no way to stop an ongoing request besides resetting and clearing all the parameters. I really hope they would accommodate these options in the future.


There is now a new Chrome API which can help remember files. Looking into it right now.


POSTman is an awesome testing tool and also a great way to document APIs to share within a team. I wish it had support for storing information in responses as variables for use in later requests. I currently use globals within environments to set things that rarely change like API keys and secret but it doesn't work for things that change in every invocation for eg., it would be nice if I can save the access token of an oath call in $token and then refer only to $token in other protected resources.


I use Simple REST Client for Chrome. This might have a few extra features, though, so guess I'll try it out. Seems like a common, over served extension idea, though.


We've been using Postman for a while now, it's invaluable for testing/validating APIs across our environments. One feature we've been waiting a long time for however is live collection sharing; to have a centralized set of endpoints/etc that's kept updated and synchronized (without needing everyone to export and import JSON files). There's a feature request on GitHub but it's been in stasis for a long time now.


Will have something which will solve this and much more very soon. I tried different alternatives (Drive/Dropbox) but none of them fit the amount of flexibility I wanted to have with collections.


why not use something like zookeeper or etcd to sync your config files?


Interesting, I'll have a look into whether that's possible with the current client (my understanding was that Collections don't detect or update changes unless you explicitly make any yourself). Still, ideally this is something that'd be very handy to have as a core feature within the app (author has looked into Google Drive integration in the past)


Great tool, added to toolchain.

If you never came across Firefox Tamper Data Add-on, this might be a great opportunity to mention it.

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

A different tool, yet targeting similar audience (us).


And let's not forget is the only one I've seen that automatically remembers cookies, very very handy.


I've been using it for quite a while now. I'm ashamed to say that it's simplistic approach on collections often made me question the urgency of writing API documentation when developing a private API. Why not just send the collection of examples? Well, we all know why but still...


Postman works great. The only feature I would like to see added is to somehow easilu swap a base URL in requests. So I have to maintain just one collection per API and not multiple collections for multiple API deployments (production, testing, staging).


You can do this by using the environments feature. Create an environment and add a key to that environment to represent the base URL. Then in the the URL line replace your base URL with the reference to the key. For example http://{{base-url}}/api/


Aha. I thought environments could only be used for setting additional HTTP headers! Thanks for this.


You can do that with environments: http://www.getpostman.com/docs/environments


"no more fiddling with the command line"

If you have to fiddle with the command line, you're doing it wrong. It drives us nuts in the Plan9 community that Bash history and readline is seen as some sort of productivity tool. We have powerful shell primitives but the command line is seen as the last resort of composing them. Admittedly we have a terminal window with which you can edit text in two dimensions but use a proper set of tools with a bit of forethought and you get much more done.

If you need an oauth client, write one with a few bits of script and use it everywhere. It's the Unix way.


> It drives us nuts in the Plan9 community that Bash history and readline is seen as some sort of productivity tool.

I don't understand what this means, can you explain?

I personally have a .bash_profile (more generally, a collection of dot files) in a git repo that I share between machines. I also find myself using Meta-. and CTRL-R quite frequently.


What would you recommend in terms of resources for learning the things you've mentioned?


Postman is an amazingly productive way to test or explore an API. It's a cheap win to export a request collection, and stick it in version control to capture the known state of an API at a point in time.


I tried postman and found it rather weird. What did not suit me: problems with remembering history - i'd expect the much labored-at settings and vars and options to be stored in the cloud and not vanish if I re-install the extension or use other machine. no custom cookies - that's a deal breaker.

I prefer the excellent Fiddler tool for manual fiddling, and yet have to find a good test-suit tool. Or write it myself...


I use both postman and restconsole alternatively for testing our JSON API. Wrapped in with the console open to the Network, it's indispensable.


Also would take a look at SoapUI if you are dealing with multi step flows:

http://www.soapui.org


I regularly use SoapUI for standing up mock services of 3rd party web services and any time a web service needs something WS-Security related. That said, I find it clunkier than I'd prefer and I use https://chrome.google.com/webstore/detail/wizdler/oebpmncolm... any time I just need a quick request envelope for some WSDL.


Perhaps the worst software I have ever used.


maybe for REST, but seriously, if you ever need to test SOAP services - I hope you don't - this is probably the best there is..


Yes I was in need of that when I tried it. And I still gave up.


I've been using this for a while. I usually go to curl if I need to do any really heavy work but it's a handy quick tool.


Our current testing utilities are relatively small and compile with modest amounts of RAM. Hobbit's netcat, WR Stevens' sock, etc.

We have security auditing rules that require us to compile the programs we run from source. We prefer small programs as they are easier to audit.

Does anyone know how much RAM is required to compile Chromium?

Can it be done on a laptop?


Do you have to compile everything from source, e.g. gcc, glibc, etc? There is no need to get into the whole "reflections on trusting trust" spiel, but I imagine at some point you must rely on your distro? Just use the chromium package from your distro. If not why not build on a desktop/server and copy package to laptop?


I would not recommend that. I compiled Chromium a few month ago with my i7 desktop with 8gig ram and it took at least an hour to finish, if not longer. I don't think RAM is that much of an issue, but I wouldn't go lower than at least 4gig of RAM.


I switched to Postman because it supports attaching files to make multipart request, which the RestClient does not.


Postman is an awesome tool. If your intereseted in a php library to go a bit further and curl urls and expect certain json response bodies, headers, and status codes, check out https://github.com/commando/dogpatch.


I've been using Postman pretty much every day for the past couple of years. It's a really handy tool for testing out APIs in particular which is primarily what I use it for. It's definitely worth upgrading your package and I think the developer well deserves it.


Postman is exactly what I have been looking for. I used Fiddler for years and always thought it to be heavy and awkward to use. It's strange I never heard about Postman before this post.

I like working out of the browser and Postman has just the right amount of features I need.



I love postman but am not a fan of the just slightly weird behavior of chrome apps.


It's a great tool, we use it all the time on our team. It's the easiest way I've found to share a full demonstration of the API all in one go, with documentation. Couldn't live without it now!


I know i am missing something here....but how on earth do you launch this?


Chrome used to take you to the apps page on a new tab by default, which was really convenient. Several releases ago they replaced that default with an utterly redundant search bar on new tab pages for reasons I can't begin to understand. Anyway, you can just go to chrome://apps and bookmark that page.


Seriously, it's a pain in the ass. Click the apps launcher in the upper left of the Chrome start page.


I'm glad to know I'm not the only person who struggled with this.


you are not. I'm quite sure this used to be easier.


Ah much appreciated, i never would have found that.


You can always bring a list of apps up by entering 'chrome://apps' in the url bar.



Chrome's official 'App Launcher' is your friend https://chrome.google.com/webstore/launcher :-)


Add it to your favorites bar and then it will be much easier for you to launch it without going to the play store !


Upper left just below the Forward and Back buttons is an Apps button.

Most people don't seem to see it as anything more than a bookmark. I searched the menus for it and did not find it. And it was sitting right there.


Super useful. It's nice that you can set auth parameters (basic/digest/oauth1&2) and headers easily.

I use it as a packaged app, so launching it is the same as it is for native stuff.


I've used Postman for a while and it is great for those trying to understand integrating with web apis. The ability to save requests in a namespace is invaluable.


I had tried many other similar tool but all of them started crashing my chrome but Postman didnt cause any issue to performance of the browser.

I will suggest Postman for sure.


I've been using this for a while. I wish it had the feature of logging the http requests going on currently, similar to other addons or Wireshark.


Postman comes with an interceptor which basically saves all the API request to postman while you are browsing through your site, https://chrome.google.com/webstore/detail/postman-intercepto...

How to use it, https://www.youtube.com/watch?v=Dxf-o_DLSLw



Our team's been using this for about 6 months as a regular part of our workflow. I now lean on it heavily while developing JSON APIs


What impress me is that far they can go as a chrome app, chrome is turning into a platform like adobe air now. It's amazing.


I'll recommend Postman to anyone any day. I make a ton of API's and it's the best tool for testing them.


This tool is very popular in my place of work and geek circle. We've been using it for quite a while now.


http://mashape.com is a proud supporter of Postman


Great tool we use during development of our REST APIs. Liking the collections for testing regressions too.


I've been using this the past few days for testing elasticsearch queries, great tool!


Postman is a great tool, i cant imagine developing applications nowadays without it.


Or you could just use curl.


Been using postman forever. But it needs lots of work.


Super useful for testing web-apps for vulnerabilities


love this tool!! indispensible if you are working with a REST api, or even debugging SOAP responses


the only flaw it's you can't see size of request without using chrome tab


postman turned real useful for me while getting some jira rest stuff to work


> for Chrome

Thank you but no.


While I have issues with a lot of services Google provides I think Chrome is safe to use here. I don't think they're capturing your communication using Chrome (you could easily find out using Wireshark). They do in many other ways, though.


Chrome is proprietary, use Chromium instead. If they aren't doing bad stuff today, they might implement bad stuff tomorrow and automatically push that update to you. You can't turn of updates in your browser, you have to edit the configuration file for the autoupdater. I prefer any Firefox or any Mozilla based browser, but that is just personal preference.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: