Anypoint DataGraph enables you to leverage the existing capabilities of your application network to drive productivity by unifying all the data within your application network in a unified schema. As a developer, you can dynamically query the unified schema and consume the fields that you need to create new connected experiences. You can improve your productivity and reduce operational costs by discovering and reusing the existing data in your application network.

With Anypoint DataGraph you can:

  • Dynamically query data from a unified schema

  • Explore your application network from a single UI

  • Discover, reuse, and serve information from your application network without writing new code

How Anypoint DataGraph Works

Every time you add a new API to your application network, Anypoint Platform stores it as a graph of metadata. Anypoint DataGraph enables you to connect those graphs into one unified schema that runs as a single SaaS GraphQL endpoint and contains and links all of the fields defined within all of your APIs. As a result, you can query across the underlying APIs without needing to understand all of the relationships or specific capabilities that exist within them.

The Unified Schema

The unified schema is a single, always-current collection of types from different API schemas that you’ve added to Anypoint DataGraph and made available for consumers to query. The query type in the unified schema contains all the query methods from the different API schemas that you’ve added to DataGraph. Your consumers can access the unified schema to see exactly what data is available to them, all in one place, and request a specific subset of that data in a single query.

To help you create a more clean and connected unified schema, Anypoint DataGraph provides three additional functionalities that allow you to:

  1. Enable collaboration between object types

  2. Link object types to create connections between them

  3. Merge object types to combine similar types into a single type to extend their fields and datasets for a more enriched query result

Example Use Case

Consider an organization using the following APIs:

  • An order API that provides information about specific purchase orders

  • A shipment API that provides shipment information for each purchase order

  • A product API that provides product information and specifications

The organization wants to create a mobile application to provide specific order status details for its customers.

To deliver this mobile application, API developers must build a new API that identifies all orders for a customer, finds the products in those orders, identifies each shipment record, and finds delivery dates and tracking numbers. The enterprise architect must first grant the developers access to each necessary API, and then manage and secure this API after the developers build and deliver it.

Now consider that this organization also wants to provide a web application to a warehouse stocking agent for all existing orders of each product. The team would need to go through a similar development to deliver it.

By using Anypoint DataGraph, the organization does not need to create a new API for every new business requirement. The enterprise architect can discover the existing order, shipment, and product APIs and add each API schema to Anypoint DataGraph. Developers can then request access to the unified schema and query the data that they need, reusing existing data.

Restrictions and Limitations

Before using Anypoint DataGraph, review the following restrictions and limitations:

  • Anypoint DataGraph supports:

    • REST APIs with RAML and OAS specifications

    • GET methods

    • Up to 250 APIs per unified schema

    • Up to 16,000 fields per unified schema

  • Anypoint DataGraph restricts downstream REST API calls to:

    • A maximum of 150 concurrent or ongoing calls per unified schema

    • A 5 second timeout per call

    • A maximum of 5 MB of response data per call

  • Anypoint DataGraph limits the query service to:

    • A 30 second timeout per query

    • A maximum of 100 selected fields per query. For example, the following query has five selected fields:

         shippingAddress {
    • A maximum depth of 100 fields per query. For example, the following query has a depth of 6:

      ordersByOrderId {               #depth 0
         orderItems {                 #depth 1
            shipmentItems {           #depth 2
               product {              #depth 3
                 model                #depth 4
                 price {              #depth 4
                   amount {           #depth 5
                     name             #depth 6
                     currencyValue    #depth 6

Anypoint DataGraph Administration in API Manager

You manage Anypoint DataGraph in API Manager. Typical management tasks include:

  • Using the DataGraph Administration settings to view and edit the GraphQL endpoint of a unified schema, configure policies, and configure client providers.

  • Managing contracts to ensure that only authorized client applications can consume the unified schema.

  • Managing SLA tiers for each Anypoint DataGraph instance.

  • Using the API Manager Client Applications page to view and manage client application contracts.

Anypoint Platform Requirements and Licensing

To use Anypoint DataGraph, ensure you meet the following requirements:

  • You must have a license for each of the following:

    • Anypoint Platform

    • API Manager and Analytics

    • Anypoint DataGraph

      The API calls associated with your Aypoint DataGraph license refer to calls made by Anypoint DataGraph to downstream REST APIs.

  • Your plan must allocate the correct number of vCores for your business group or organization using Anypoint DataGraph. If you haven’t allocated the correct number of vCores to the environment in which you’re attempting to add an API, Anypoint DataGraph raises an error message. Reapply the same changes after allocating the correct number of vCores.

Refer to Anypoint Platform Runtime Plane Hosting Options for details on API hosting requirements.

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub