Dear API friends,
If Web designers built websites like we build APIs,
nobody would be able to use them:
every website would have their own conventions,
and you would need to read its manual before using it.
Therefore, in “A Web API ecosystem through feature-based reuse”
(available for free at
https://arxiv.org/pdf/1609.07108v1.pdf),
we argue that Web APIs should be build like websites instead,
and we introduce 5 API design principles to realize this.
We explain that, like websites, APIs should not be monoliths
but rather consist of reusable interface components,
just like "search box", "list", "status update", etc.
that are so familiar to all of us.
Then, clients can be programmed against specific features
and be compatible with multiple APIs instead of just one.
On the technological level, this is certainly possible
(think of OpenSearch, Atom, etc.),
but the main problem is on the level of adoption.
However, with the rate APIs are currently exploding,
I think it's really important to start thinking about sustainability.
Furthermore, the article considers Web API descriptions
(Swagger etc.) as symptomatic relief, which simplify
maintaining the disease of uncontrolled API growth,
rather than providing a solution to it.
I'd appreciate your feedback on the article!
Cheers,
Ruben
PS If you don't have a lot of time,
this figure on page 3 is a great summary:
https://arxiv.org/pdf/1609.07108v1.pdf#page=3