首页  >  文章  >  后端开发  >  PHP 的 Kong Admin API:一个与框架无关的客户端,用于无缝 Kong 网关管理

PHP 的 Kong Admin API:一个与框架无关的客户端,用于无缝 Kong 网关管理

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-06 08:52:02243浏览

Kong Admin API for PHP: A Framework-Agnostic Client for Seamless Kong Gateway Management

我很高兴推出 Kong Admin API for PHP,这是一个功能强大且独立于框架的 PHP 包,可以简化与 Kong Gateway 的 Admin API 的交互。这个包是我们之前的 Laravel 特定客户端 (nasrulhazim/kong-gateway-php-client) 的一个进步,现在将被存档。

我们的新软件包为任何 PHP 环境的开发人员提供了多功能解决方案,无论框架如何,都可以灵活地轻松管理 Kong Gateway。

为什么选择适用于 PHP 的 Kong Admin API?

Kong Gateway 的灵活性、可扩展性和功能使其成为 API 管理的理想选择。然而,现有的 PHP 客户端要么依赖于特定的框架,要么缺乏强大的灵活性。这个新包满足了这些需求,提供:

  • 与框架无关的设计:与任何 PHP 框架或自定义项目兼容。
  • 全面的 API 支持:通过简化的 CRUD 操作轻松管理 Kong 资源。
  • 可配置的身份验证:内置基于 API 密钥的身份验证,提供安全的访问管理。
  • 模块化设置:根据您的环境自定义 API 的基本 URL、标头等。
  • 可靠的错误处理:通过强大的错误处理避免停机,确保稳定的 API 交互。

快速入门指南

下面是帮助您开始使用Kong Admin API for PHP的指南。

安装

要安装该软件包,请运行:

composer require cleaniquecoders/kong-admin-api

在 Docker 上设置 Kong

如果您是 Kong 的新手或者想在本地开发环境中快速设置它,请查看我们的使用 Docker 设置 Kong Gateway 的指南。本指南提供了在本地运行 Kong 的分步 Docker 设置,非常适合测试和开发。

配置 Kong 网关 API 环回

首先,配置 Kong 以允许在 Admin API 上进行环回连接,从而实现安全、基于标头的身份验证。以下是如何使用curl进行设置的示例:

#!/bin/bash

# Create Admin API Service
curl --request POST --url http://localhost:8001/services --data name=admin-api-service --data url='http://localhost:8001'

# Create Admin API Route
curl --request POST --url http://localhost:8001/services/admin-api-service/routes --data 'paths[]=/admin-api' --data name=admin-api-route

# Enable Key Auth on Admin API Service
curl --request POST --url http://localhost:8001/services/admin-api-service/plugins --header 'Content-Type: application/json' --data '{"name":"key-auth","config":{"key_names":["api-key"],"key_in_query":false}}'

# Create Admin API Consumer
curl --request POST --url http://localhost:8001/consumers --data '{"username":"apim","custom_id":"apim"}'

# Create APIM API Key
curl -X POST http://localhost:8001/consumers/apim/key-auth

使用 PHP 的 Kong 管理 API

以下是您可以使用此软件包执行的常见任务的一些示例:

  1. 初始化配置

    use CleaniqueCoders\KongAdminApi\Configuration;
    
    $configuration = new Configuration(
        base: 'http://127.0.0.1:8000',
        uri: 'admin-api',
        apiKey: 'your-api-key',
        keyName: 'api-key'
    );
    
  2. 创建连接器和客户端

    use CleaniqueCoders\KongAdminApi\Client;
    use CleaniqueCoders\KongAdminApi\Connector;
    
    $connector = new Connector($configuration);
    $client = new Client($connector);
    
  3. 操作示例

  • 存储新服务

     use CleaniqueCoders\KongAdminApi\Enums\Endpoint;
     use CleaniqueCoders\KongAdminApi\Request;
    
     $response = $client->send(
         (new Request)
             ->setEndPoint(Endpoint::SERVICES)
             ->store(['name' => 'Some Service', 'url' => 'http://api.service.com'])
     );
    
     print_r($response);
    
  • 更新服务

     $response = $client->send(
         (new Request)
             ->setEndPoint(Endpoint::SERVICES)
             ->update('b3c12a56-1234-4f90-876d-12a5b678abcd', ['url' => 'http://new-example.com'])
     );
    
     print_r($response);
    
  • 获取服务

    composer require cleaniquecoders/kong-admin-api
    
  • 删除服务

    #!/bin/bash
    
    # Create Admin API Service
    curl --request POST --url http://localhost:8001/services --data name=admin-api-service --data url='http://localhost:8001'
    
    # Create Admin API Route
    curl --request POST --url http://localhost:8001/services/admin-api-service/routes --data 'paths[]=/admin-api' --data name=admin-api-route
    
    # Enable Key Auth on Admin API Service
    curl --request POST --url http://localhost:8001/services/admin-api-service/plugins --header 'Content-Type: application/json' --data '{"name":"key-auth","config":{"key_names":["api-key"],"key_in_query":false}}'
    
    # Create Admin API Consumer
    curl --request POST --url http://localhost:8001/consumers --data '{"username":"apim","custom_id":"apim"}'
    
    # Create APIM API Key
    curl -X POST http://localhost:8001/consumers/apim/key-auth
    
  1. 添加插件 您可以使用自定义配置添加插件,例如速率限制:
use CleaniqueCoders\KongAdminApi\Configuration;

$configuration = new Configuration(
    base: 'http://127.0.0.1:8000',
    uri: 'admin-api',
    apiKey: 'your-api-key',
    keyName: 'api-key'
);

需要 Kong API 网关帮助?

正在考虑实施 Kong 作为您的 API 网关或需要帮助优化您的设置?我们提供有关设置和配置 Kong Gateway 以实现无缝 API 管理的咨询。您可以在这里安排预约:预约咨询。

结论

Kong Admin API for PHP 为管理 Kong Gateway 的 API 资源提供了灵活可靠的解决方案。它支持多个框架和强大的配置选项,旨在轻松集成并使开发人员能够完全控制 Kong 的强大功能。


照片由 Codioful(以前的 Gradienta)在 Unsplash 上拍摄

以上是PHP 的 Kong Admin API:一个与框架无关的客户端,用于无缝 Kong 网关管理的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn