zdne
My bad I was not concrete. What I've meant by "this/that" the entire "find the docs - read the docs - program/generate your client using the docs/OAS - maintain your client forever" when we can have application that will do all this without our intervention.
> I'm never not going to need API documentation because it's not just syntax. It also tells me how the vendor's object model works. It tells me the right order to make API calls, how to know my rate limit, and how to choose permissions for my API keys that are as narrow as possible.
Ideally, you should only need to understand the business logic of the API and not how to achieve it, that part can be figured out by your app.
Self-integration approach does not force you to harmonize the offerings. It just abstract you away from the APIs using the business layer (as you are already doing using you classes).
You might try to harmonize some of the vendors if that is what you like, but that is not the gist. With Some vendors and in certain domains it might make sense - that's why we see domain integrators. With others, it either does not make sense or it is not commercially viable. Either way, you can have your app integrating on the abstraction level without you caring about the technicalities.
The sad truth is that vendors in the first place don't want their offerings to be interchangeable. But that is for another discussion.
Also, it is great to hear that codegen from OAS works for you!
> losing first-party support from the API vendor and having yet another layer to have to debug
1. if your app self-integrates you will not loose that 2. you have this layer already in your hexagonal / clean architecture wrappers, what is worse, everyone is bikeshedding, writing this part over and over
OpenAPI cures symptoms, not disease
57bn USD/year – the cost of API works
Introducing Supermodel.io – Domain Modeling and JSON Schema Registry
Deira Serverless API
Stop versioning APIs
We need to break our APIs to enable autonomous AI
The Web grew strong because sites were interlinked. REST APIs are supposed to be generalized Web and yet they are missing the links! What Went Wrong?
Nothing in the article is new in the concept, but maybe™ the time is now right. Frankly, what the part I'm concerned about isn't the semantics sharing at runtime, but it's the de-coupled, declarative approach in writing the clients.
With hypermedia, we've failed at the gates of client development. The devs tend to tight-couple their code with APIs, ignoring the consequences. If there won't be an incentive on client's side, then nothing from the article will matter.
They don't have to make it interoperable per se. It'd be enough to use some terms from a shared vocabulary (user, account, address) and then have some business-specific terms.
This way the business can use an existing library that knows how to handle user profiles. It's not that the full client has to be generic, a UI component that knows how to present a portion of a dictionary is enough.
The Future of APIs: APIs aren’t the endgame they won't stay forever
/author of API Blueprint here/ I would not say this is the case. API Blueprint focuses on different data for various reasons (design-first, documentation-orinented). In order to bring the Swagger support we had to introduce some extension in the format. We are, however, trying to unify the tooling under the hood of the refract project (https://github.com/refractproject/refract-spec/blob/master/n...) through (de)serialization plugins for the Fury.js library (https://github.com/apiaryio/fury.js)
A hosted mock server is part of Apiary suite of tools for the entire API design lifecycle. Others would include interactive documentation, traffic inspector, backend testing and style guide validation. We hope to encourage collaboration and bring the design-first, documentation-oriented approach to the world of API development.
Apiary has got Swagger
Think before you code (API)
Tao of Good API Design
Building smarter, more robust API clients
Describing data structures in READMEs using plain text
Robust API client demonstration (iOS)
Yes and no. Depends how you "write" those tests. In this case, where you describe the scenarios, it is indeed true. However you can take a different approach – without writing explicit tests (and thus the client code). Rather you just describe your API in a sort of contract and then, as you iterate, you verify the implementation is living up to this contract...