首頁  >  文章  >  後端開發  >  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