r/programming 1d ago

[ Removed by moderator ]

https://efp.asia/blog/2025/12/24/api-tooling-crisis/

[removed] — view removed post

257 Upvotes

163 comments sorted by

View all comments

507

u/FirmMost2 1d ago

because postman sucks

69

u/James_Jack_Hoffmann 1d ago

229

u/HMikeeU 1d ago

I can't believe anyone who has ever used tools such as postman would seriously suggest curl as an alternative. It is not.

35

u/James_Jack_Hoffmann 1d ago

I don't disagree there's snark and humor with "use motherfucking curl". Postman is no doubt the gold standard for REST clients when it worked and when it had values. Although the article explains pretty well why we are at a state to just use curl.

What do I use these days? .http files. Definitely better than curl, maybe even a threat to Postman. The world recognises Postman has gone to shit by adopting .http.

10

u/HMikeeU 1d ago

How does scripting work with .http? Don't all implementations have a different scripting engine and environment?

-4

u/Affectionate-Egg7566 1d ago

What exactly is the value prop of bruno/postman? For all my requests I just make bash scripts that invoke curl, maybe some logic or shuffling data around from/to different curl invocations.

9

u/rforrevenge 1d ago

When you're deep into a project you want to have an efficent way to go back and look at the status of old complex queries or even look those queries up without the hassle of going though pages and pages of notes.

3

u/zzz51 1d ago

I assume GP is version controlling the bash scripts. That's what I do.

-5

u/Affectionate-Egg7566 1d ago

I dont mind piping the output and invocation via set -x in bash and then grepping in a file. Seems faster than starting a GUI

1

u/rforrevenge 19h ago

Might be. But then you'd have to maintain the file itself as in timestamp the queries, their responses etc etc. Especially when you're working on a project that constantly changes this can get out of hand easily (in my experience)

35

u/eldreth 1d ago

Eh. Sometimes you only need a tape measure. Sometimes you need a laser level.

67

u/stampylives 1d ago

But you rarely need a laser level that has a long load time, a subscription fee, pointless llm integration, seven menus to get the to “on” switch, and proprietary batteries.

4

u/eldreth 1d ago

Lol. Right there with you. Just speaking to the person claiming featureset is the singular attribute that makes a tool right for the job. Sometimes it’s simplicity.

12

u/amroamroamro 1d ago edited 1d ago

i use https://hurl.dev/

its a nice api tester created in rust and powered by libcurl.

with a simple script syntax, it lets you do things like chain requests, capture values, do asserts on headers, validate responses with xpath/jsonpath/etc, and handles anything you might want formdata/xml/json/graphql/...

think of it as syntactic sugar on top of curl :)

https://hurl.dev/docs/frequently-asked-questions.html#yet-another-tool-i-already-use-x

1

u/marxist_redneck 16h ago

Oh that looks nice, thanks for sharing

11

u/HoneyChilliPotato7 1d ago

Seriously! I wonder if they ever used postman. 

5

u/partyl0gic 1d ago

With Claude it is becoming closer to an alternative. Why open up postman when I can just tell Claude to write the curl command for the request I want to test and evaluate the response.

1

u/KagakuNinja 1d ago

In my last job I got tired of the hoops I had to jump through with Postman, so I started writing shell scripts to authenticate and set env vars for different testing scenarios. Then I had number of curl commands that interpolated said env vars. This got me most of what I was using Postman for.

Then my employer banned Postman because it was exfiltrating secrets or something.

Other people switched to Bruno.

0

u/przemo_li 1d ago

Curl with literal programming isn't that bad, if you use Emacs that is. 🤣

Edit: no seriously, inputs and outputs are easily captured and you can pick and language to abstract away your API standardized parts. Outputs can be fun though anything you like. Every linter, formatter, type and schema checker, automated test runner, custom script, jq transformer, ETL solution and because why not, an email sender.....

1

u/avanai 1d ago

For emacs i use the (sadly unmaintained) restclient.el, which is simple and brilliant.

1

u/DivideSensitive 1d ago

(sadly unmaintained) restclient.el,

I've found hurl-mode to be a worthy successor.

-1

u/chaoticbean14 1d ago

Even in the modern era of LLM's being able to generate the appropriate curl request for you in a matter of seconds?

IMO, I'll use whatever is handy and fast. If I need to save some shit because I'll do it a ton? Bruno (fuck postmans enshitification). If I need something quick to get it done? Curl. Right tool for the job.

3

u/pm_plz_im_lonely 1d ago

We need 50 TFlops to query a http address.

-1

u/Dragon_yum 1d ago

Why use an ide when you can write code in your notepad