When you refer to an API - what do you mean?

Not applicable

Is it a single URL ? Is all of my URLs that I support? What do you consider to be a workable definition of an API?

0 1 283
1 REPLY 1

Not applicable

In the most general sense, an application programming interface (API) is comprised of the routines, protocols, and artifacts utilized in building software applications.

In the Apigee world, we narrow this definition to a RESTful version. In my view of the world, an API is the exposure of a collection of resources via HTTP protocols with meaningful paths, verbs, headers, parameters, payloads, etc. using RESTful practices. The grouping of resources within an API is largely determined by considering which resources can be logically bundled to be meaningful to the consumers of the API.

While there is no hard and fast rule for this grouping, there are anti-patterns to be avoided which include mapping a single path/verb combo to an a single API, and on the other extreme grouping unrelated resources in a single API. In the end, an API defines objects and functions that are independent of the underlying implementation which allows for the definitions of those APIs to evolve as consumer needs change without requiring changes in target systems.

At the same time the underlying implementation of those targets can evolve without compromising consumers. A good API defines a logical building block that makes it easier to develop an app. If we have done our job right as API designers, programmers quickly and efficiently assembles those blocks into killer applications.