LoginSignup
0
2

More than 3 years have passed since last update.

【備忘録】Kong管理者向けAPIまとめ

Last updated at Posted at 2019-04-23

:8001

サービス登録

Request
POST /services 
  --data "name=fuga" \
  --data "host=localhost" \
  --data "port=80"
Response
{
    "host": "localhost",
    "created_at": 1555991214,
    "connect_timeout": 60000,
    "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e",
    "protocol": "http",
    "name": "fuga",
    "read_timeout": 60000,
    "port": 80,
    "path": null,
    "updated_at": 1555991214,
    "retries": 5,
    "write_timeout": 60000,
    "tags": null
}

ルーティング登録

Request
POST /routes --data "protocols=http" --data "service.id=dabb54f0-c5b0-43b8-9671-5d5223b7088e" --data "paths=/fuga" 
Response
{
    "updated_at": 1555990743,
    "created_at": 1555990743,
    "strip_path": true,
    "snis": null,
    "hosts": null,
    "name": null,
    "methods": null,
    "sources": null,
    "preserve_host": false,
    "regex_priority": 0,
    "service": {
        "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e"
    },
    "paths": [
        "/fuga"
    ],
    "destinations": null,
    "id": "3055b130-52d4-48ab-953c-739cab13ae0f",
    "protocols": [
        "http"
    ],
    "tags": null
}

サービス一覧

GET /services
{
    "next": null,
    "data": [
        {
            "host": "localhost",
            "created_at": 1555978112,
            "connect_timeout": 60000,
            "id": "452d7496-2ff0-4165-b66b-ca2369908855",
            "protocol": "http",
            "name": "hoge",
            "read_timeout": 60000,
            "port": 80,
            "path": "/hoge",
            "updated_at": 1555978112,
            "retries": 5,
            "write_timeout": 60000,
            "tags": null
        },
        {
            "host": "localhost",
            "created_at": 1555978167,
            "connect_timeout": 60000,
            "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e",
            "protocol": "http",
            "name": "fuga",
            "read_timeout": 60000,
            "port": 80,
            "path": "/fuga",
            "updated_at": 1555978167,
            "retries": 5,
            "write_timeout": 60000,
            "tags": null
        }
    ]
}

ルーティング一覧

GET /routes
{
    "next": null,
    "data": [
        {
            "updated_at": 1555990743,
            "created_at": 1555990743,
            "strip_path": true,
            "snis": null,
            "hosts": null,
            "name": null,
            "methods": null,
            "sources": null,
            "preserve_host": false,
            "regex_priority": 0,
            "service": {
                "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e"
            },
            "paths": [
                "/fuga"
            ],
            "destinations": null,
            "id": "3055b130-52d4-48ab-953c-739cab13ae0f",
            "protocols": [
                "http"
            ],
            "tags": null
        }
    ]
}

プラグイン

Key Authentication

サービスでの有効化

POST /services/{service.id|service.name}/plugins --data "name=key-auth"

Consumer作成

Request
POST /consumers --data "username=shigaki"
Response
{
    "custom_id": null,
    "created_at": 1555978475,
    "id": "59f7ab81-fc83-4f06-abc7-25eb01f9389e",
    "tags": null,
    "username": "shigaki"
}

Key発行

Request
POST /consumers/shigaki/key-auth
Response
{
    "key": "Px64k3MwiHXXxAaJqYcHydSzWcxZ0hn5",
    "created_at": 1555978780,
    "consumer": {
        "id": "59f7ab81-fc83-4f06-abc7-25eb01f9389e"
    },
    "id": "e0a2d410-6b2b-44bd-b234-cb878098195e"
}

ACL

有効化

Request
POST /services/{service}/plugins --data "name=acl" --data "config.whitelist=group1" --data "config.whitelist=group2"

Rate Limiting

有効化

Request
POST /services/fuga/plugins --data "name=rate-limiting" --data "config.second=5"
Response
{
    "created_at": 1555984885,
    "config": {
        "minute": null,
        "policy": "cluster",
        "month": null,
        "redis_timeout": 2000,
        "limit_by": "consumer",
        "hide_client_headers": false,
        "second": 5,
        "day": null,
        "redis_password": null,
        "year": null,
        "redis_database": 0,
        "hour": null,
        "redis_port": 6379,
        "redis_host": null,
        "fault_tolerant": true
    },
    "id": "c689b7ec-34dd-4268-b7b6-1cd5e8addb83",
    "service": {
        "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e"
    },
    "name": "rate-limiting",
    "protocols": [
        "http",
        "https"
    ],
    "enabled": true,
    "run_on": "first",
    "consumer": null,
    "route": null,
    "tags": null
}

プラグイン一覧

GET /plugins
{
    "next": null,
    "data": [
        {
            "created_at": 1555978245,
            "config": {
                "key_names": [
                    "apikey"
                ],
                "run_on_preflight": true,
                "anonymous": null,
                "hide_credentials": false,
                "key_in_body": false
            },
            "id": "a4abc8e3-a72f-4856-85f8-982ffbc8ab66",
            "service": {
                "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e"
            },
            "name": "key-auth",
            "protocols": [
                "http",
                "https"
            ],
            "enabled": true,
            "run_on": "first",
            "consumer": null,
            "route": null,
            "tags": null
        },
        {
            "created_at": 1555984885,
            "config": {
                "minute": null,
                "policy": "cluster",
                "month": null,
                "redis_timeout": 2000,
                "limit_by": "consumer",
                "hide_client_headers": false,
                "second": 5,
                "day": null,
                "redis_password": null,
                "year": null,
                "redis_database": 0,
                "hour": null,
                "redis_port": 6379,
                "redis_host": null,
                "fault_tolerant": true
            },
            "id": "c689b7ec-34dd-4268-b7b6-1cd5e8addb83",
            "service": {
                "id": "dabb54f0-c5b0-43b8-9671-5d5223b7088e"
            },
            "name": "rate-limiting",
            "protocols": [
                "http",
                "https"
            ],
            "enabled": true,
            "run_on": "first",
            "consumer": null,
            "route": null,
            "tags": null
        }
    ]
}

参考文献

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2