Self-Serve APIs
TL;DR - API Consumers can self-serve, and reduce network traffic
Unlike Custom APIs which require server development, Self-Serve APIs can be used directly by consumers. They use Swagger to retrieve the data they want, then copying the URI to their code. API consumers include:
-
UI Developers - progress no longer blocked on custom server development
-
Application Integration - remote customers and organizations can similarly meet their own needs
For external use, consumer-defined APIs can reduce network traffic.
Provider-Defined vs. Consumer-Defined
Consider 2 classes of APIs:
-
Provider-Defined APIs are predefined by server developers
- These are useful when API structure is dictated by an external system, such as a pre-defined application integration (example here)
But, providers typically cannot predict needs for a large class of API consumers (e.g., UI Developers, business partners, or other teams in a large organization). Given only predefined provider APIs, consumers are often forced to make multiple calls to obtain the data they need, or invoke APIs that return too much data. These can increase network traffic.
That leads to a second class of APIs, such as GraphQL and JSON:API:
-
Consumer-Defined APIs enable clients to provide parameters for exactly the fields and related data they need. This can:
- Reduce network traffic by eliminating multiple API calls, or calls for excessive data, and
- Minimize organizational dependencies with self-serve APIs.
Example
API Consumers can obtain the data they want as shown below.
Create Request With Swagger
First,
- Use the automatically created Swagger (available via the Admin App) to obtain the data you want
- Click
Try it out
to verify the result, as shown below
Copy URI to client app
Then, when it's correct,
- Copy the URL to your client app
- Optionally, save the cURL for interactive testing