Hacker News new | past | comments | ask | show | jobs | submit login

Can someone explain what Postman or Bruno is for? I know it's something for interacting with apis but why would i use it. I interact with apis a lot with curl or wrapper in my languages but never really needed something else?



For me it's more convenient than curl for three reasons mainly:

1. Easier to organize collections of requests in a visual hierarchy

2. Environments mean you can use the same collection to easily execute against local, dev, staging, production, etc.

3. Pre- and post-execution scripts mean you can programmatically extract values and chain into other requests (think grabbing an access token from an oauth request then using that token for an authenticated request)

It's basically just convenience features, nothing you can't get with other tools.


One more thing I don't see mentioned is that you can share requests with your team easily, so if you worked on an API integration, you can document it, share it with your team, and when the next time someone else needs to fix something, they can find something that worked at some point and has all the required fields.

Of course you could also just check in to version control these requests as curl commands, so if your team has the technical knowhow, that's about almost the same.

Or even better, you write some tests in your language to make these requests, then you have an integration test, too.


That's... what code is for? Why are developers sharing "requests" if we all need to build an API client?


As someone who uses curl and postman regularly, both tools have their places: I've found curl most useful for quick ad-hoc requests, or if I need to figure out why my service is no longer working. Postman I've found most useful to create a library of requests that are available on-hand: If I need to call services but I don't want to have to remember what the exact URL is or what the exact payload is.


Have you tried hurl ? It's kind of a mix between curl and Postman


To put it simply: Postman is for everything but what curl is for. Sure it also performs the actual request somewhere under the hood but that’s mostly irrelevant. Having a single integrated user interface (it could also be a text UI) to craft a request, sometimes sending JSON, sometimes a file, then sending it to inspect the result, then modifying the request then doing it again is very powerful. Not to mention OAuth/OIDC support and the like.

Sometimes, you have to find out how an API works, exactly. Sometimes you want to test your own APIs in ways the regular clients do not allow.


Alot of people in tech/tech-adjacent cant use CLI, need an easier alternative. Also, instead of having a huge .txt/.md recursive directory of curl commands, programs like these bundle up request workflows into 'collections' etc..


Also it helps with documenting/testing.


For me a big usecase is the ability to save specific requests and categorize / name them. It's a good way to document test data. If someone creates a feature which I want to test or debug I'd have to dig into the database to find which parameters I'd need to use, or I just find the right request in the tool.


Isn't that what integration tests are for? I really don't understand why we'd use a 3rd party system that's not part of a CI to test an API.


My use case (covered by postman but not Bruno) is to test a code base where unit testing is not available.

We have multiple environments with multiple parallel versions (think like dev/staging/prod and current/legacy), these deployments mostly have the same API with slightly different urls and credentials

We use multiple environments to easily switch between the various versions both for one-off operations (like a clear cache call that only needs to be called few times a year in response to external actions) and to manually test features.

I can see why not everybody would have this use case

Iirc Bruno does not have enough environment/variables/pre-post-request scripting support


Bruno/Postman is basically curl + a filesystem + git + jq + make.

If you're really comfortable with all those tools, you won't understand Postman because you'll say "why don't people just chain all these tools together?". It's like the famous hn comment on dropbox, "why don't people just use rsync"?

It's technically true, and if you're adept at those tools, you should probably use them instead of Postman. But yea, it's a useful product for a bigger set of people.


It’s a rich GUI for calling APIs, including rudimentary load testing.


I really like to use Insomnia (Bruno alike) to import all project API's and debug API's over Insomnia. Does the job much faster for me.


Insomnium is a fork without all the signup requirement bs


I had the same question. My current workflow in deploying a REST API is to write my own thin wrapper in Python and publish that so people can use it. I don’t know if postman/bruno saves me from having to write a wrapper. I also don’t understand the deal with “collections”. Maybe postman/bruno are good for creating a test suite ?


Can be used to for api testing. Collections, token handling etc. Mostly for api testing, and collections can be shared among team members and source controlled.




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

Search: