Service Binding

Bind your API to a service as Workers, so you can use the Workers capabilities within your API.

Overview

Service Binding allows you to connect your API to a service as Workers, enabling you to leverage the capabilities of Workers within your API. This feature enhances the flexibility and functionality of your API, allowing for seamless integration with serverless functions.

Example Service

Here’s a simple example of a service that responds with a message:

export default class Service {
  async fetch(request, env, ctx) {
    return new Response("Hello from Worker 1!", {
      headers: { "content-type": "text/plain" },
    });
  }
}

API Configuration

To bind a service to your API, you need to define it in your API configuration. Below is an example of how to configure your API to use the service defined above:

{
    "$schema": "./api-config.schema.json",
    "title": "API Gateway Config",
    "description": "Configuration for the Serverless API Gateway",
    "services": [
        {
            "alias": "endpoint1",
            "entrypoint": "./services/endpoint1"
        }
    ],
    "paths": [
        {
            "method": "GET",
            "path": "/api/v1/endpoint1",
            "integration": {
                "type": "service",
                "binding": "endpoint1"
            }
        }
    ]
}

Explanation

  • Service Definition: The service is defined in the services array with an alias (endpoint1) and an entry point pointing to the service file.

  • Path Integration: In the paths array, a new path is created that uses the service binding. The integration type is set to service, and the binding references the alias of the service.

How to Use

  1. Create Your Service: Write your service logic in a JavaScript file and export it as shown in the example above.

  2. Update API Configuration: Add your service to the services array in the API configuration and create a path that integrates with your service.

  3. Deploy Your API: Once your configuration is set, deploy your API to make the service available.

Benefits of Service Binding

  • Modularity: Keep your API logic modular by separating service functionality into distinct files.

  • Scalability: Easily scale your services independently from your API.

  • Flexibility: Utilize the full power of Cloudflare Workers to handle requests and responses dynamically.

Conclusion

Service Binding is a powerful feature of the Serverless API Gateway that allows you to enhance your API's capabilities by integrating with serverless functions. By following the examples and guidelines provided, you can easily set up and manage your services within your API.

For more information, visit the Serverless API Gateway Documentation.

Last updated