Why API abstraction and API-first are a match made in heaven

Why API abstraction and API-first are a match made in heaven

API abstraction provides a unique solution for large enterprises looking to scale their API program as part of an overall API-first digital strategy. In this post we look at what abstraction is, why it’s needed, and the 6 key benefits of using abstracted APIs as your system of record and main API objects, rather than code.

Large enterprises have a gap in their API programs: storing APIs as code is the cause

In recent years we've seen the majority of organizations adopt API-first methodology to their digital strategy; where APIs are treated as a first class citizen and are of strategic importance.

As a large enterprise trying to scale your API program in support of API-first, you’re likely now trying to:

  • Treat APIs as interfaces to business capabilities, not applications.
  • Open up your APIs to a wider audience – to be discovered and consumed by internal (e.g LoBs, product owners) and external (e.g. partners in your API ecosystem) stakeholders
  • Manage, organize and group together thousands of APIs which encapsulate your business capabilities and IT functions, not just 10-100 open APIs
  • Manage different types of APIs with multiple versions for different technologies/runtime environments/platforms (e.g. business capability, internal IT, public/partner/3rd party APIs, but also REST, SOAP, events, emerging technologies)
  • Record and manage artifacts and metadata which are related to those APIs and otherwise add to their complexity; such as lineage, mappings, conformance to data models, and security policies (and other common shared services)

What’s more, you likely want all of the above in a?single unified view, understandable by both business and IT. But, relying on the implementation code for your APIs makes this near impossible – that’s because API code is hard to interrogate and understand beyond a handful of skilled developers. What's more, it's held on disparate systems and gateways, and so hard to capture a unified view of everything in your landscape.

Abstracting your APIs?provides an unique solution and can be used to deliver all of the needs above, thus helping support API-first at scale.

What is API abstraction?

Simply put, abstraction can take your APIs away from their complex code and implementation specifics, into a?common metadata framework, to make them understandable by everyone in the enterprise in a standardized format.

When working with abstraction, two objects are involved to ensure your APIs are usable by both business and technical users:

  1. A pure abstracted view of the API: This is what we call a Design. A code- and implementation-agnostic view which contains abstracted capabilities of what the API does/will do once realized. Designs are a representation of your business capabilities and technical functions.
  2. A semi-abstracted service representation of the Design: This is what we call a Specification. A technical view of your API which contains implementation-specific technical details e.g. methods with a de-coded payload structure and non-functional requirements. These are versioned, and importantly contain enough detail to be used to generate runtime artifacts off-of (API code, contract, configuration, and documentation), enabling you to get back to the code to actually run the APIs.

Graphic showing how abstracted API Designs and Specifications are related to eachother.


Benefits of using API abstraction for a successful API strategy

1. An extended audience for your APIs

Your?catalog of APIs and Services?becomes understandable by an extended audience as the detail and business logic is not locked away in the code. Many more roles internally in your enterprise such as Digital Product Owners, as well as approved external users can discover, understand, and use your APIs and Services – all with a reliable consumer experience:

  • Business users such as Business Analysts
  • Other technical users
  • Partners

Users of your abstracted APIs can easily learn:

  • What APIs your organization already has
  • How the APIs work
  • Who owns the APIs
  • What the upcoming API versions are
  • Who to contact for feedback or change requests
  • Any dependencies between the API and others

2. APIs can be reused to support new digital products

As APIs are abstracted into a common framework and therefore standardized format, they can be easily combined together, and repurposed into what we call Product Bundles (which includes API products, composite APIs etc.). These bundles can be used to quickly build, test, and?launch innovative new digital products?using your existing capabilities.

3. Normalized, consistent and well-governed API code and documentation

The metadata in the abstracted APIs can be used directly to generate normalized and consistent code, contracts, configuration, and documentation; in formats that can be used and digested by different runtime systems e.g. API gateways or code repositories like an SCM configuration.

Alternatively, if only API documentation is needed, this can be generated in easy-to-read formats like word or excel, again in a consistent way.

Abstraction also allows your APIs to easily be aligned to an?API governance model upstream?in the API lifecycle.

4. Flexibility on alternative/future coding standards and formats

With abstraction, the system of record for your APIs is the?Design?(pure abstraction) and?Specification?(service representation), rather than the runtime code. This means that the abstracted API can easily be redeployed, and pointed to a different downstream target, increasing responsiveness for your enterprise to the ever changing digital landscape, and preventing vendor lock-in.

This flexibility also makes IT modernization efforts easier like legacy SOAP to REST or wrapping REST in GraphQL, and futureproofs your APIs for whatever technology or coding standard comes next.

5. Enables you to build a holistic catalog of your API and Service landscape

Once your APIs are abstracted into a common standard, you can organize them by Design type (e.g. business capability API, system IT API, facade/experience API, 3rd party API) and map them to business capability models and technical taxonomies. That way they're classified, well organized, and easy to discover. You can also record inter-dependencies and relationships (e.g. data lineage and mappings) between your APIs and their versions, as well as understand their conformance to data models and security policies. This gives you?a holistic catalog view of your API landscape; all the different sources of each API and where they are in the lifecycle, which are suitable for reuse and can be approved to do so, and which are not reusable and are just registered into the catalog.

6. Ease of abstracted API reporting

With abstraction comes easy reporting on API coverage, maturity,?governance?and regulatory compliance. This enables better tracking of?KPIs and business value that your APIs are delivering; something which is extremely difficult to do if your APIs are held in code.

The ignite platform provides a unique ability to abstract your APIs and reap these benefits

The?ignite platform?from digitalML provides a holistic API catalog with?extended lifecycle. Your existing APIs, Events, and Services can be imported (and/or harvested) and automatically abstracted into the common metadata framework we’ve discussed in this post, along with taxonomies, information models, and business glossaries. Once you have imported, organized, and normalized your APIs into Designs and Specifications, ignite’s robust integrations with CI/CD and runtime systems, and template-driven artifact generation enables you to deploy your APIs directly from the catalog.


This article was originally published on digitalml.com

要查看或添加评论,请登录

digitalML的更多文章

社区洞察

其他会员也浏览了