Why don't more companies publish either a specification for their API or an API client on a website like GitHub?
For small shops with a few engineers, this makes sense, but for companies that we're paying > $100,000/yr. for access to their APIs, it seems like they should also provide an API client for interacting with it - or at the very least, API documentation.
What are the main barriers preventing more companies from releasing either a specification for their APIs or an API client?
Are APIs easier to reverse engineer these days, and therefore it's not really necessary to release a client or specification?
On the other hand, maybe writing a full-fledged API client is an anti-pattern, since callers could simply implement the functionality that they need rather than implementing all of the functionality that they think that they MIGHT need while still reverse engineering the API?
Something I haven't seen mentioned much on this thread is that the ~top feature people want from SDKs at this point is good static types – so you can get autocomplete, docs-on-hover, etc in your editor. Way better than switching back and forth to the docs and crossing your fingers.
Doing that well means copying every little change into the SDKs (forget about it) or using a generator.
The open-source codegen tools (ie, https://openapi-generator.tech/) are pretty crappy, so you need to either build the SDK yourself fully, or spend a bunch of time wrestling with the generator get it halfway-decent, and then you're still letting your customers/developers down.
Disclaimer, I'm starting a company to make it easy for anyone to ship a great SDK with their REST API: https://stainlessapi.com
As far as publishing a spec, I don't know but I'm guessing part of it is a reluctance to commit to anything (which does kind of defeat the purpose of a public API).
Being API-first and caring about the developer experience (DX) is still a new phenomenon. Companies like Twilio and Stripe differentiated in DX. Now there's a whole category of API-first startups like seam.co (API for IoT devices), merge.dev (unified API for 180+ integrations), and stytch.com (API for authentication) who publish API clients in major languages like Node.js, Python, Java, and Go. They also publish their OpenAPI specs in case you use a long-tail language and want to generate a client yourself.
IMO, in the next 5 years, it'll become the norm to offer clients if you have a public REST API.
> for companies that we're paying > $100,000/yr. for access to their APIs
Case in point; they didn't need to provide any of that for you to pay. The value is coming from elsewhere, and they didn't think the extra upfront and ongoing cost of providing a client or docs is worth it.
I do agree that many companies can design and document their APIs better.