The best practice for designing System APIs within an API-led connectivity framework is to make them reusable assets. A System API should expose the capabilities and data of an underlying system of record (e.g., a Customer entity from a CRM) in a canonical, standardized format. By allowing a System API to return a complete data model, even if not all fields are currently needed by a specific consumer, it decouples the API from the immediate requirements of a single project. This design promotes broader reusability across the organization for future projects that may require different data attributes, thus preventing API proliferation and rework.
Why Incorrect Options are Wrong
A) Handle customizations for the end-user application at the Process API level rather than the Experience API level
This is incorrect. The primary purpose of an Experience API is to tailor data and functionality for a specific end-user channel or context. Pushing this logic to the Process API layer would make it less reusable.
C) Always use a tiered approach by creating exactly one API for each of the 3 layers (Experience, Process and System APIs)
This is an overly rigid and false constraint. The number of APIs at each layer depends entirely on the complexity of the business process, the number of systems, and the number of consuming channels.
D) Use a Process API to orchestrate calls to multiple System APIs, but NOT to other Process APIs
This is an incorrect limitation. While Process APIs do orchestrate System APIs, they can and often should also call other Process APIs to compose more complex business capabilities from reusable process components.
---