Postman vs curl
Posted by YesterdayOk921@reddit | learnprogramming | View on Reddit | 24 comments
Quick Question:
What do you actually use for APIs? postman or curl?
I keep bouncing between both and neither feels great:
-> postman is slow/heavy
-> curl becomes unreadable fast
debugging anything slightly complex is painful
I’m thinking of building something around improving the curl/terminal workflow (more interactive, less typing the same stuff again and again)
before I do that:
what do you use daily?
what’s the most annoying part?
anything you wish existed instead?
Also, any tools you’ve tried that are actually better? (httpie, insomnia, tui clients, etc.)
just trying to understand what people actually need
HashDefTrueFalse@reddit
Directories of shell scripts using curl have worked fine for me. Very little difference between that and what other tools give me. I don't need it to also be the filesystem viewer, editor, organiser, remote storage solution etc. It's all just text, it goes in files and gets pushed to the repo (minus secrets). I really like just working with text files wherever possible.
YesterdayOk921@reddit (OP)
Love that approach tbh plain text and versioned scripts is hard to beat. Super transparent and zero lock in.
just curious what if those suites grow, do you ever feel friction around things like handling auth tokens, reusing headers, or chaining requests?
HashDefTrueFalse@reddit
Yeah, it's nice. I know I can come back in 20 years and just run everything.
Not really any friction if you already know curl+bash or whatever you're using to script tests. They're scripts, so they lend themselves well to all of that. Auth is no problem, handled the usual way. Common data is placed anywhere common for reuse. Chaining actions is what scripting is.
To be honest I've never really been able to fully appreciate what people see in products that essentially just let you group requests together and share some data definitions (usually resulting in big blobs of JSON), whilst providing you with an editor you don't want (yours is better, it's yours) and yet another API to learn for scripting you can already do anywhere (often the language you wrote the project in)...
YesterdayOk921@reddit (OP)
this requires real experience in shell scripting and big chunk of time spent in terminal.
you must be a neovim or emac user.
HashDefTrueFalse@reddit
Haha, good shout. I've used both plenty. I switched from many years of doom emacs to neovim (with a few plugins) about 4 years ago. I will say that none of this is dependent on any editor or language, though it will obviously be easier to write tests that make HTTP requests in some languages than others (e.g. JS/TS and Python have nice HTTP libs that do a good amount of heavy lifting).
YesterdayOk921@reddit (OP)
well I thought of moving to neovim but it requires time and patience to get used to it, so would you recommend me moving to it and spend time on it or should i stick to current one (vs code). Does it matter now? As AI has improved efficiency and productivity.
HashDefTrueFalse@reddit
I'd say the thing to realise is that it's a little DSL for text manipulation. It's cool if you're into that. There are no major benefits besides fairly fast keyboard-only text editing and ubiquity. It won't make you a better programmer and nobody in the real world cares what editor you use. I would recommend it if you think you'll enjoy it. You can install it and run
:Tutorto see what it's all about. If you don't enjoy it, leave it be. If you want to use it, I'd recommend fully committing to it, no back and forth with your old editor/IDE. You'll be slow for a week, then you'll pretty quickly get faster. Two/three weeks and you'll have the basics down enough to be able to work at a decent pace. Keep a cheatsheet bookmarked.I don't think that LLMs have anything to do with which editor you use, so won't comment on that part.
YesterdayOk921@reddit (OP)
Will look into it 👍
dashkb@reddit
Bruno is pretty sweet.
YesterdayOk921@reddit (OP)
Will try
4iqdsk@reddit
Httpie is a popular CURL alternative that has a more ergonomic interface.
I recommend this for most people, but it’s written in Python so it might be slower than CURL.
I use CURL because I’ve been using it for so long, and I’m familiar with it, and it’s installed on every machine.
YesterdayOk921@reddit (OP)
What if there exists a repl style tool that has interactivity? would you mind switching to it?
what one thing would you choose in that to switch over curl or httpie
Medical_Mirror7834@reddit
bro, you dont get postman everywhere, sometimes need to have a quick test on server and curl is perfect
YesterdayOk921@reddit (OP)
Do you usually just run one off requests or do you need to repeat/modify them a lot on the server too?
Idi0syncr4tic@reddit
I usually default to curl for quick stuff and Postman for anything complex.
Biggest pain is repeatability, copying headers, tokens, and tweaking requests over and over. Something lightweight but interactive in the terminal would actually be super useful.
YesterdayOk921@reddit (OP)
That middle ground is painful
If you could redesign it, would you go REPL style or stick to commands?
And what’s the one thing you wish worked better right now?
Successful_Bowl2564@reddit
Voiden.
Works like a charm.
Feeling_Ad_2729@reddit
They serve different purposes and most developers use both depending on context.
curl is for: quick one-off requests, scripting, CI pipelines, sharing reproducible commands with teammates (a curl command is self-contained and pasteable), and working on servers where there's no GUI.
Postman is for: exploring an API you don't know yet (the UI helps), building a collection of saved requests for a project, team collaboration on API docs, and automated test suites with environments.
The practical answer: learn curl well enough to be comfortable with it (it's everywhere — docs, Stack Overflow answers, terminal workflows). Use Postman or an alternative (Bruno, Insomnia, HTTPie) when you want to organize and save requests for a project.
One thing worth knowing: Postman has gotten progressively more bloated and account-gated. Bruno is a good alternative if you want a lightweight tool that saves collections as files you can commit to git.
DrStrange@reddit
For quick and dirty tests, I use curl - if it's anything more than that I just write a short Python script with requests: https://pypi.org/project/requests/
what language are you working in? pretty much anything will work, and you end up with a library of API test code at the end of it.
dswpro@reddit
Bruno. It's the only tool like this approved by my employer.
coffeeintocode@reddit
People use both for different things.
Postman has projects you save, and can sync between team members. It's basically API documentation with working examples. It shows how your api is orgonized, and lets you set up flows so that you can log in, which will persist your token, copy a value like an id from one response to the request of another etc. It lets you test the api/validate how it works etc, without having to remember or tell your team what values they need to make a request.
Curl just lets you make a network request and see the result, it has none of that overhead.
Most of the time I've used postman has been on a team, and we had a shared project that we could all view/update, as our source of truth for how the api works.
When companies aren't making decisions for me I use the rapidapi app, It was a great native Mac app called PAW. But Rapidapi bought them, its still basically the same app
YesterdayOk921@reddit (OP)
so, do you face any problems with postman or looking for better alternatives?
I though of building a repl style interactive CLI that bridges the gap between GUI tools like postman and cli tools like curl, httpie and provide better experience. So, does this type of tool exist or in need?
Dapper-Click9616@reddit
httpie mostly
curl when i need the raw control but yeah readability becomes a nightmare once your hitting endpoints with auth headers and complex payloads
postman gui feels like running a train simulation at 2fps when you just want to test a quick endpoint
insomnia was decent but still too heavy for quick iterations
the annoying part is context switching between different tools depending on complexity - like having different gauge tracks that dont connect
YesterdayOk921@reddit (OP)
yeah that context switching part hits hard
ideally feels like there should be one place where:
you start simple but can go deeper without switching tools
do you think you’d actually use something like that if it stayed in the terminal but felt more interactive?
like if there is a cli you could use that provides better context switching, collaboration and GUI integrations. Basically a repl style interactive shell?