API Management Overview

Manage and secure APIs with Weik.io APIM

Weik.io’s API Management provides a YARP-based reverse proxy for managing APIs. Configure APIs using Api, ApiVersion, and ApiSubscription resources.

Configuration Resources

Api

Defines the base configuration with URL prefix:

apiVersion: weik.io/v1alpha1
kind: Api
metadata:
  name: webhook
  description: The Webhook.site TEST API
spec:
  prefix: hook

The prefix determines where API endpoints are accessible (e.g., https://your-host/hook/...).

ApiVersion

Defines a specific version with proxy routing configuration:

apiVersion: weik.io/v1alpha1
kind: ApiVersion
metadata:
  name: v1
  description: Webhook.site test using direct forwarding
  category: proxy
spec:
  apiName: webhook
  isActive: true
  connection:
    automaticDecompression: GZip
  parameters:
    routes:
      route:
        clusterId: "cluster"
        match:
          path: "{**catch-all}"
    clusters:
      cluster:
        destinations:
          cluster/destination1:
            Address: "https://webhook.site/99f574f3-a9c3-4723-aae3-ecb98cc4e395"

The parameters section uses YARP routing syntax with routes and clusters.

ApiSubscription

Controls which clients can access APIs:

apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
  name: my-apikey
  description: Subscription using X-API-Key header
  category: apikey
spec:
  apis:
    - webhook
  isActive: true
  parameters:
    key: "NGWdkceFPYyXmaH15jS3K0uCsk7KnnPA"

Authentication Methods

APIM supports various authentication methods through ApiSubscription:

API Key

apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
  name: my-apikey
  category: apikey
spec:
  apis:
    - webhook
  isActive: true
  parameters:
    key: "your-api-key"

Basic Authentication

apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
  name: dev-basicauth
  category: basic
spec:
  apis:
    - webhook
  isActive: true
  parameters:
    username: "hello"
    password: "test123"

OpenID Connect (OIDC)

apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
  name: oidc-aad
  category: oidc
spec:
  apis:
    - webhook
  isActive: true
  parameters:
    issuer: "https://sts.windows.net/your-tenant-id/"
    audience: "api://your-api-id"

Anonymous

apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
  name: anonymous-apis
  category: anonymous
spec:
  apis:
    - webhook
  isActive: true

What’s Next