Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 12431|Jawab: 0

Microservices Gateway Kong menggunakan plug-in untuk menyesuaikan pengembalian kesalahan

[Salin tautan]
Diposting pada 14/02/2019 16.58.19 | | |
Plugin Kong

Plugin Kong mendukung empat dimensi, urutan eksekusi dari atas ke bawah, dan perlu dicatat bahwa jika plugin yang sama dikonfigurasi dalam dimensi yang berbeda, itu hanya akan dieksekusi sekali:

  • Terapkan API plus campuran konsumen;
  • Diterapkan pada konsumen;
  • Diterapkan di API;
  • Diterapkan secara global;

Selain itu, tidak semua plugin mendukung penentuan konsumen

Menambahkan API lain untuk pengujian
Tambahkan antarmuka baru:


{
    "created_at": 1515055457572,
    "strip_uri": benar,
    "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "nama": "pegas-boot-consul-service2",
    "metode": [
        "DAPATKAN"
    ],
    "http_if_terminated": salah,
    "preserve_host": salah,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "uris": [
        "/pengguna"
    ],
    "upstream_send_timeout": 60000,
    "upstream_connect_timeout": 60000,
    "upstream_read_timeout": 60000,
    "percobaan": 5,
    "https_only": salah
}


Tambahkan uap


{
    "created_at": 1515055993113,
    "daftar pesanan": [
        41,
        28,
        44,
        14,
        79,
        38,
        30,
        69,
        15,
        88,
        72,
        53,
        89,
        47,
        81,
        43,
        60,
        91,
        92,
        100,
        98,
        55,
        12,
        40,
        9,
        31,
        84,
        24,
        36,
        39,
        96,
        74,
        6,
        8,
        93,
        99,
        78,
        34,
        49,
        37,
        61,
        76,
        33,
        35,
        32,
        77,
        70,
        26,
        52,
        87,
        73,
        23,
        57,
        25,
        17,
        90,
        62,
        82,
        19,
        75,
        50,
        4,
        51,
        42,
        65,
        66,
        63,
        3,
        1,
        68,
        94,
        67,
        20,
        80,
        54,
        7,
        5,
        16,
        85,
        13,
        46,
        10,
        97,
        22,
        48,
        11,
        27,
        86,
        18,
        59,
        83,
        21,
        56,
        95,
        2,
        64,
        58,
        71,
        45,
        29
    ],
    "id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
    "name": "spring-boot-consul-service2.service.dc1.consul",
    "slot": 100
}


Menambahkan target



Tamendapatkan Informasi

{
    "total": 3,
    "data": [
        {
            "created_at": 1515056103599,
            "id": "994e7886-3e48-45cb-80ad-3f7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "target": "192.168.0.186:17004",
            "berat": 15
        },
        {
            "created_at": 1515056109570,
            "id": "03b477ee-a69d-49ee-9892-276f451c373c",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "target": "192.168.0.185:17004",
            "berat": 15
        },
        {
            "created_at": 1515056112730,
            "id": "8ace8d83-4504-4334-ad04-f0b536963df9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "target": "192.168.0.184:17004",
            "berat": 15
        }
    ]
}


Daftar API saat ini adalah sebagai berikut:

{
    "total": 2,
    "data": [
        {
            "created_at": 1515055457572,
            "strip_uri": benar,
            "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
            "nama": "pegas-boot-consul-service2",
            "metode": [
                "DAPATKAN"
            ],
            "http_if_terminated": salah,
            "https_only": salah,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "uris": [
                "/pengguna"
            ],
            "preserve_host": salah,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "percobaan": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": benar,
            "id": "b8431831-6a77-434e-ac4a-7e379550714f",
            "nama": "layanan konsul sepatu pegas",
            "metode": [
                "DAPATKAN"
            ],
            "http_if_terminated": salah,
            "https_only": salah,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "uris": [
                "/layanan"
            ],
            "preserve_host": salah,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "percobaan": 5
        }
    ]
}


Antarmuka akses mengembalikan yang berikut ini:

{
    "msg": "oke",
    "tanggal": {
        "skor": 42,
        "nama": "pohon",
        "id": 1,
        "usia": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "kode": 200
}
{
    "msg": "oke",
    "tanggal": {
        "skor": 505,
        "nama": "pohon",
        "id": 1,
        "usia": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "kode": 200
}

Tambahkan plugin Key-Auth

Buka plugin key-auth


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": salah,
                "run_on_preflight": benar,
                "anonim": "",
                "hide_credentials": salah,
                "key_names": [
                        "apikey"
                ]
        },
        "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "enabled": true,
        "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
        "name": "key-auth"
}

Kemudian akses antarmuka dengan kesalahan seperti ini:

DAPATLogin hyperlink terlihat.
#输出
{
    "message": "Tidak ada kunci API yang ditemukan dalam permintaan"
}

Hapus plugin key-auth



Lihat plugin pengikat API

DAPATLogin hyperlink terlihat.
# Keluaran:
{
    "total": 0,
    "data": []
}

Tambahkan pembatasan kecepatan plugin pembatasan kecepatan


keluaran

{
    "created_at": 1515068825000,
    "config": {
        "menit": 10,
        "policy": "cluster",
        "redis_timeout": 2000,
        "hide_client_headers": salah,
        "kedua": 2,
        "limit_by": "konsumen",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": benar
    },
    "id": "482c627f-4041-4320-9b2f-0cc7722b92ea",
    "name": "pembatasan laju",
    "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "enabled": true
}

Ketika antarmuka akses melebihi batas, pengembalian berikut akan diterima:


Kembali

{
    "message": "Batas tarif API terlampaui"
}

Namun, masih ada beberapa masalah, karena format pesan diperbaiki, format output tidak konsisten dengan layanan backend, dan format pesan khusus perlu didukung.

Kong memodifikasi nilai pengembalian pengecualian
Misalnya, format pesan terpadu layanan adalah sebagai berikut:

{
    "kode": 200,
    "msg": "oke",
        "data": {xxx}
}

Kami juga ingin pengembalian pengecualian kong tetap dalam format yang sama seperti di atas. Kemudian kita bisa langsung memodifikasi kode sumber Kong, yang sebenarnya sangat sederhana.

Mulailah dengan mengunduh kode sumber

#下载kong插件源码

git klongit@github.com:Kong/kong.git

Temukan kode output yang akan dimodifikasi

Kode keluaran terletak di kong/kong/tools/responses.lua, buka untuk diedit.



Simpan, lalu kompilasi

[root@tree81 kong]# luarocks membuat
kong 0.11.2-0 sekarang diinstal di /usr/local (lisensi: MIT)

Luncurkan, coba lagi

Segarkan alamat dengan cepat beberapa kali berturut-turut:Login hyperlink terlihat.Mendapatkan pesan error:

{
    "kode": 429,
    "msg": "Batas tarif API terlampaui"
}

Selesai, sempurna :)




Mantan:jQuery memuat sepotong teks melalui AJAX
Depan:init: function () jquery对象的构造函数
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com