Was ist API-Monetarisierung?

Liu Wei

November 11, 2022

Technology

Stellen Sie sich vor, Sie haben einen Dienst entwickelt, der Rabattinformationen von allen Supermärkten in Ihrer Stadt sammelt. Wenn andere Entwickler auf diese Daten zugreifen möchten, können sie die API nutzen, um die gewünschten Informationen zu erhalten, und wir können eine Gebühr für die API-Nutzung erheben. Die Umwandlung von Daten in Geld durch APIs wird als API-Monetarisierung bezeichnet. API-Monetarisierung ist eine ideale Möglichkeit, Ihre Dienste profitabel zu machen.

API-Monetarisierung

Sobald ein Unternehmen das Geschäftsmodell der API-Monetarisierung übernimmt, ist das nächste, was zu berücksichtigen ist, das Preismodell. Die meisten API-Anbieter verwenden eines von drei Standard-Preismodellen: gebündelter Zugriff, Pay-per-Call und Pay-per-Month. In all diesen Preismodellen müssen API-Anbieter die Anzahl der API-Aufrufe jedes Benutzers zählen. Daher ist die Identifizierung der Benutzeridentität entscheidend, da der Benutzer gedrosselt werden kann, wenn die Anzahl der API-Aufrufe das Dienstpaket überschreitet. Es reicht jedoch nicht aus, nur den einzelnen Benutzer zu identifizieren. Häufig sind es Unternehmensbenutzer, die Dienste erwerben. In diesem Fall teilen sich die Mitarbeiter des Unternehmens dasselbe Abrechnungskonto, wenn sie mit ihrer Organisation verbunden sind. Daher ist es ebenso wichtig, die Organisation zu identifizieren, zu der der Benutzer gehört.

Anwendungen der API-Monetarisierung

Anwendungen der API-Monetarisierung sind überall zu finden. SMS (Short Message/Messaging Service)-Verifizierungscodes sind ein typisches Beispiel für API-Monetarisierung. Cloud-Anbieter verwenden dieses Modell auch für Dienste wie Nachrichtenwarteschlangen, Texterkennung usw. Sicherheitsanbieter nutzen es für WAF (Web Application Firewall) und Inhaltsfilterungsdienste. Dieses Monetarisierungsmodell ist so erfolgreich, dass wir dringend eine geeignete Technologie benötigen, um es zu unterstützen. Das heißt, wir brauchen etwas, um unsere APIs effizient zu verwalten.

Bei der Verwaltung von APIs müssen wir festlegen, wer veröffentlichen kann, was veröffentlicht wird und wo veröffentlicht wird, und sicherstellen, dass die APIs den organisatorischen Standards entsprechen, wie URL-Muster, Namenskonventionen und Zugriffssteuerungsregeln. Darüber hinaus muss jede Abteilung in der Lage sein, ihre eigenen APIs unabhängig zu verwalten, einschließlich API-Updates oder Designverbesserungen, Durchführung von Verkehrssteuerung, Rate-Limiting und Sicherheitsstrategien. Wir müssen auch die Nutzung, Leistung und andere Metriken in Echtzeit beobachten.

API-Gateways sind die Werkzeuge, die zur Verwaltung der APIs eingeführt wurden. API-Gateways können verschiedene Probleme bei der Handhabung der API lösen. Als zentraler Proxy leitet das API-Gateway alle eingehenden Client-Anfragen an das vorgesehene Ziel (Backend-Dienst) weiter, wodurch Ihre API sicherer und einfacher zu verwalten ist. Die meisten API-Gateways unterstützen auch verschiedene Autorisierungs- und Authentifizierungsprotokolle, sodass Benutzer komplexe Berechtigungskontrollen und viele andere Funktionen wie Rate-Limiting durchführen können.

Es gibt viele beliebte Open-Source-Projekte für API-Gateways, insbesondere Apache APISIX und seine alternative Enterprise-SaaS-Lösung, API7 Cloud.

API-Monetarisierungspraxis von APISIX

Apache APISIX unterstützt diese wesentlichen Funktionen und integriert sich mit verschiedenen Beobachtungsplattformen (Prometheus, OpenTelemetry, Apache Skywalking usw.). Diese integrierten Plugins haben die Fähigkeit von Apache APISIX zur Analyse von APIs verbessert und somit eine äußerst umfassende Beobachtbarkeit realisiert. Darüber hinaus hat Apache APISIX für das Problem der Benutzeridentifikation das Konzept des „Consumers“ vorgeschlagen.

APISIX Consumer

Verschiedene Consumer entsprechen verschiedenen Benutzern. Jeder Consumer ist mit seinen Plugins und Upstream-Konfigurationen verbunden. Consumer sind nützlich, wenn Sie verschiedene Consumer haben, die dieselbe API anfordern, und Sie unterschiedliche Plugin- und Upstream-Konfigurationen ausführen müssen. In diesem Fall identifiziert das Authentifizierungssystem basierend auf dem Consumer, um verschiedene Regeln zu konfigurieren, was die Benutzerverwaltung erleichtert.

APISIX Consumer

Aber nur Consumer zu unterstützen, reicht nicht aus. Für Unternehmensbenutzer müssen mehrere Consumer dasselbe Verbrauchskontingent teilen, und wenn wir die Konfiguration jedes Consumers separat verwalten, wird der Betrieb zu umständlich. Daher hat APISIX das Konzept der „Consumer-Gruppe“ vorgeschlagen. Mehrere Consumer können dieselbe Konfiguration und dasselbe Verbrauchskontingent teilen.

APISIX Consumer-Gruppe

Nachdem wir die Praxis von APISIX in der API-Monetarisierung verstanden haben, schauen wir uns eine spezifische Anwendung an.

  • Konfigurieren Sie die Rate-Limiting-Funktion für das Unternehmen, und die Benutzer des Unternehmens teilen sich dieselbe Konfiguration
# Consumer-Gruppe erstellen
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "plugins": {
        "limit-count": {
            "count": 200,
            "time_window": 60,
            "rejected_code": 503,
            "group": "$consumer_group_id"
        }
    }
}'

# Consumer 1 erstellen
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "jack",
    "plugins": {
        "key-auth": {
            "key": "auth-one"
        }
    },
    "group_id": "company_a"
}'

# Consumer 2 erstellen
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "johnson",
    "plugins": {
        "key-auth": {
            "key": "auth-two"
        }
    },
    "group_id": "company_a"
}'

# Route erstellen
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri": "/get",
    "plugins": {
        "key-auth": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "httpbin.org": 1
        }
    }
}'

# Route aufrufen
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 199
...

curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two'
...
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 198
...

# Wert von count auf 2 Anfragen pro Minute ändern
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "plugins": {
        "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "group": "$consumer_group_id"
        }
    }
}'

# Route aufrufen
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...


curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 0
...


# Kein Kontingent mehr, HTTP 503
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
HTTP/1.1 503 Service Temporarily Unavailable


# Nach einer Minute wird das Kontingent wiederhergestellt
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...


# Eine weitere Route erstellen
curl http://127.0.0.1:9180/apisix/admin/routes/2 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri": "/anything",
    "plugins": {
        "key-auth": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "httpbin.org": 1
        }
    }
}'

# Sie können sehen, dass beide Routen dasselbe Kontingent teilen
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...


curl -i http://127.0.0.1:9180/anything -H 'apikey: auth-one'
HTTP/1.1 503 Service Temporarily Unavailable
...

Zusammenfassung

Um Dienste und Daten durch API-Monetarisierung in Einnahmen umzuwandeln, müssen Unternehmen professionelle API-Management-Tools einführen: API-Gateway. Das beliebteste API-Gateway ist Apache APISIX, das umfangreiche Praktiken in der API-Monetarisierung hat. APISIX schafft Konzepte wie Consumer und Consumer-Gruppen, um die Verwaltung von APIs erheblich zu erleichtern und Unternehmen zu ermöglichen, APIs reibungsloser zu monetarisieren.

Tags: