Kong KonnectのAPI ProductsとDev PortalでAPIを管理してみる
APIの管理を効率化したい えがわ です。
本ブログはゲーソル・ギョーソル Advent Calendar 2024の22日目のブログとなります。
今回はKongのAPI管理機能である、API ProductsとDev Portalについて確認していきます。
環境
- Kong Konnect
- Ubuntu 22.04.4 LTS(WSL2)
やってみる
KongがホスティングしているhttpbinのAPIを管理してみます。
ServiceとRouteを設定
管理するServiceを追加します。
Gateway Services -> New Gateway Service
を選択しService作成画面に遷移します。
名前とUpstream URLを設定し登録します。
管理するServiceからRouteを追加します。
名前とパスを入力しRouteを設定します。
動作確認を行います。
egawa@HL01559:~$ curl http://localhost:8000/httpbin/get?message=hello
{
"args": {
"message": "hello"
},
"headers": {
"Accept": "*/*",
"Connection": "keep-alive",
"Host": "httpbin.konghq.com",
"User-Agent": "curl/7.81.0",
"X-Forwarded-Host": "localhost",
"X-Forwarded-Path": "/httpbin/get",
"X-Forwarded-Prefix": "/httpbin",
"X-Kong-Request-Id": "e4f2a36b124b85375831153c83e27149"
},
"origin": "192.168.143.2",
"url": "http://localhost/get?message=hello"
}
ServiceとRouteの設定が完了しました。
API Productsの作成
作成したServiceを管理対象とするため、API Productsを作成します。
API Products -> + API Product
から作成します。
Productの名前を設定し作成します。
作成できました。
次にAPIのバージョンを作成します。
Product Versions -> New Version
から作成します。
管理するControl PlaneとServiceを選択します。
APIのバージョンを作成できました。
ダミーとして書いたSpecをアップロードしてみます。
openapi: 3.0.0
info:
title: HTTPBin API
description: A simple API to inspect HTTP requests.
version: "1.0.0"
servers:
- url: https://httpbin.konghq.com
paths:
/get:
get:
summary: Get details about the GET request.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
args:
type: object
headers:
type: object
origin:
type: string
url:
type: string
/ip:
get:
summary: Get the IP address of the requester.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
origin:
type: string
/uuid:
get:
summary: Get a new UUID.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
SwaggerライクなUIが表示されました。
API Productsの確認
API Productsの一覧画面に遷移するとバージョン作成時に選択したServiceの情報を確認することが可能です。
一覧画面では3つの情報を確認することが可能です。
RequestsはAPIの価値
Error RateとAverage LatencyはAPI利用者の体験
だといえます。
Dev Portalを作成
ここまでは管理者がAPIを管理するまでの流れをやってきましたが、ここからは利用者用のページを作成していきます。
API Productの画面からCreate Dev Portalを選択します。
名前だけ設定し、後は初期値のまま作成します。
Dev Portalが作成できました。
ここからはAPI Productsの公開作業を行います。
+ API Products
を選択し、対象のAPI ProductのPublish
ボタンを押下します。
これでAPI Productが公開されました。
さらにVersionの公開も行います。
API Productの画面から対象Versionの画面に遷移し、Actions -> Publish to Dev Portal
を選択します。
バージョンの公開も行えました。
準備が完了したので、Dev Portalの画面を確認してみます。
Dev Portalの画面をからDefault Portal URLにアクセスします。
認証が必要なので、アカウントの作成を行います。
メールアドレスの認証後、Dev Portal画面からアクセス許可を行います。
ログインするとSwaggerライクAPI仕様書を利用者用に公開できています。
さいごに
KongのAPI管理機能を実際に試してみました。
API ProductsではAPIのKPIを一覧で確認でき、Dev Portalでは利用者用のAPI仕様書を簡単に公開することが可能です。
組織横断でAPI Productsを使用することでAPIを重複して開発することを防ぐことができ、
また、セキュリティリスクのある野良APIの発見にも繋がります。
この記事がどなたかの参考になれば幸いです。
参考