To me these are all different perspectives of the same thing. There is overloading of the term, such as an API being the actual logical interface including syntax and protocol, but in the larger sense, an API represents a service, hence your second definition. And your third definition is a matter of context more than anything, I think.
“Application” in these cases means that the interface is meant for programmatic interaction, as opposed to a GUI for human interaction. The actual interface part of an API is only the tip of the iceberg. What makes things perhaps more murky is that, with microservices (mS,) all mS’s have an interface, typically a RESTful one, and so you can say that the northbound interface to a mS is an API, and it is. However, in the modern and broader sense of things, there is typically an integration layer in the environment acts as an API Provider, offering a programmatic interface northbound, and orchestrating needed southbound interfaces to mS’s and/or other resources (e.g. databases, etc.)
I’m all for distinguishing between different cases where a term is overloaded, for clarity sake. I actually like to use a term as a class label and then create distinct related objects using a modifier to add context, so that we can see the relationships and still differentiate. There may be an argument against that and/or for distinct single terms for each case. I like using grammatical conventions to express things because that works very well if done thoughtfully.
Thanks!
Paul
------------------------------
Paul Gausman
AT&T Inc.
------------------------------
Original Message:
Sent: 03-29-2017 19:50
From: eva Johansson
Subject: API Standards
If I go some years back an API was a Application Process Interface. Today we are using API word to be an IT Service, built on IT capabilities from different applications to enable service orientation of IT Landscapes.
In the digital society we also have open value chains between actors in the eco-system, and API turns more or less into a business interface between actors.
Would it be useful to distinguish between these use cases in the standards?
1) Application interfaces
2) Assembled IT services
3) Business interfaces, automated
------------------------------
eva Johansson
Telia Company
------------------------------