O Que é API Monetization?

Liu Wei

November 11, 2022

Technology

Imagine que você desenvolveu um serviço que coleta informações de descontos de todos os supermercados da sua cidade. Se outros desenvolvedores quiserem acessar esses dados, eles podem usar a API para obter as informações desejadas, e podemos cobrar uma taxa com base no uso da API. Converter dados em dinheiro por meio de APIs é chamado de monetização de API. A monetização de API é uma maneira ideal de tornar seus serviços lucrativos.

Monetização de API

Uma vez que uma empresa adota o modelo de negócios de monetização de API, a próxima coisa a considerar é o modelo de precificação. A maioria dos provedores de API usa um dos três modelos de precificação padrão: acesso agrupado, pagamento por chamada e pagamento mensal. Em todos esses modelos de precificação, os provedores de API precisam contar o número de chamadas de API de cada usuário. Portanto, identificar a identidade do usuário é crucial, pois o usuário pode ser limitado se o número de chamadas de API exceder o pacote de serviço. No entanto, apenas identificar o usuário individual não é suficiente. Muitas vezes, são os usuários corporativos que compram os serviços. Nesse caso, os funcionários da empresa compartilham a mesma conta de faturamento quando associados à sua organização. Portanto, é igualmente importante identificar a organização à qual o usuário pertence.

Aplicações da Monetização de API

As aplicações da monetização de API estão por toda parte. O código de verificação por SMS (Serviço de Mensagens Curtas) é um exemplo típico de monetização de API. Os fornecedores de nuvem também usam esse modelo para serviços como filas de mensagens, reconhecimento de texto, etc. Os fornecedores de segurança o utilizam para serviços de WAF (Web Application Firewall) e filtragem de conteúdo. Esse modelo de monetização é tão bem-sucedido que precisamos desesperadamente de uma pilha de tecnologia adequada para suportá-lo. Ou seja, precisamos de algo para gerenciar nossas APIs de forma refinada.

Ao gerenciar APIs, precisamos administrar quem pode publicar, o que publicar e onde publicar, garantindo que as APIs estejam em conformidade com os padrões organizacionais, como padrões de URL, convenções de nomenclatura e regras de controle de acesso. Além disso, cada departamento precisa ser capaz de gerenciar suas próprias APIs de forma independente, incluindo atualizações de API ou melhorias de design, executando controle de tráfego, limitação de taxa e estratégias de segurança. Também devemos observar o uso, desempenho e outras métricas em tempo real.

O gateway de API é a ferramenta introduzida para gerenciar as APIs. Os gateways de API podem resolver vários problemas no manuseio da API. Como um proxy central, o gateway de API encaminha todas as solicitações de clientes recebidas para o destino pretendido (serviço de backend), tornando sua API mais segura e fácil de gerenciar. A maioria dos gateways de API também suporta vários protocolos de autorização e autenticação, para que os usuários possam realizar controles de permissão complexos e muitas outras funções, como limitação de taxa.

Existem muitos projetos populares de código aberto para gateways de API, sendo os mais notáveis o Apache APISIX e sua solução alternativa de SaaS empresarial, API7 Cloud.

Prática de Monetização de API do APISIX

O Apache APISIX suporta essas funções essenciais e se integra a várias plataformas de observabilidade (Prometheus, OpenTelemetry, Apache Skywalking, etc.). Esses plugins integrados aumentaram a capacidade do Apache APISIX de analisar APIs, realizando assim uma observabilidade incrivelmente abrangente. Além disso, para o problema de identificação do usuário, o Apache APISIX propôs o conceito de "consumidor".

Consumidor do APISIX

Diferentes consumidores correspondem a diferentes usuários. Cada consumidor está vinculado a seus plugins e configurações de upstream. Os consumidores são úteis quando você tem diferentes consumidores solicitando a mesma API e precisa executar diferentes configurações de plugin e upstream. Nesse caso, o sistema de autenticação identificará com base no consumidor para configurar regras diferentes, facilitando o gerenciamento de usuários.

Consumidor do APISIX

Mas apenas suportar consumidores não é suficiente. Para usuários corporativos, vários consumidores precisam compartilhar a mesma cota de consumo, e se gerenciarmos a configuração de cada consumidor separadamente, a operação será muito trabalhosa. Portanto, o APISIX propôs outro conceito de "grupo de consumidores". Vários consumidores podem compartilhar o mesmo conjunto de configurações e a mesma cota de consumo.

Grupo de consumidores do APISIX

Após entender a prática do APISIX na monetização de API, vamos ver uma aplicação específica.

  • Configurar a função de limitação de taxa para a empresa, e os usuários da empresa compartilham a mesma configuração
# criar grupo de consumidores
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"
        }
    }
}'

# criar consumidor 1
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"
}'

# criar consumidor 2
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"
}'

# criar rota
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
        }
    }
}'

# acessar a rota
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
...

# alterar o valor de count para 2 solicitações por minuto
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"
        }
    }
}'

# acessar a rota
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
...


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


# após um minuto, a contagem é recuperada
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...


# criar outra rota
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
        }
    }
}'

# você pode ver que ambas as rotas compartilham a mesma contagem
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
...

Resumo

Para converter serviços e dados em receita por meio da monetização de API, as empresas precisam introduzir ferramentas profissionais de gerenciamento de API: gateway de API. O gateway de API mais popular é o Apache APISIX, que tem práticas ricas em monetização de API. O APISIX cria conceitos como consumidor e grupos de consumidores para facilitar muito o gerenciamento de APIs e permite que as empresas monetizem APIs de forma mais suave.

Tags: