Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 12431|Svare: 0

Microservices Gateway Kong bruker plug-ins for å tilpasse feilmeldinger

[Kopier lenke]
Publisert på 14.02.2019 16:58:19 | | |
Kong-plugin

Kongs plugin støtter fire dimensjoner, kjørerekkefølgen er fra topp til bunn, og det bør bemerkes at hvis samme plugin er konfigurert i forskjellige dimensjoner, vil den bare bli utført én gang:

  • Bruk API-en pluss forbrukerblandingen;
  • Anvendt på forbrukere;
  • Anvendt i API-et;
  • Anvendt globalt;

Dessuten støtter ikke alle plugins definerende konsumenter

Legg til et nytt API for testing
Legg til et nytt grensesnitt:


{
    "created_at": 1515055457572,
    "strip_uri": Sant,
    "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "navn": "fjær-støvel-konsul-tjeneste2",
    "metoder": [
        "GÅ"
    ],
    "http_if_terminated": falskt,
    "preserve_host": falskt,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "URIS": [
        "/bruker"
    ],
    "upstream_send_timeout": 60 000,
    "upstream_connect_timeout": 60 000,
    "upstream_read_timeout": 60 000,
    "Retrys": 5,
    "https_only": falsk
}


Legg til damp


{
    "created_at": 1515055993113,
    "ordreliste": [
        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",
    "Navn": "Spring-boot-consul-service2.service.DC1.Consul",
    "Slots": 100
}


Legg til mål



Tagets-informasjon

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


Den nåværende listen over API-er er som følger:

{
    "totalt": 2,
    "Data": [
        {
            "created_at": 1515055457572,
            "strip_uri": Sant,
            "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
            "navn": "fjær-støvel-konsul-tjeneste2",
            "metoder": [
                "GÅ"
            ],
            "http_if_terminated": falskt,
            "https_only": falskt,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "URIS": [
                "/bruker"
            ],
            "preserve_host": falskt,
            "upstream_connect_timeout": 60 000,
            "upstream_read_timeout": 60 000,
            "upstream_send_timeout": 60 000,
            "Retries "Retrys": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": Sant,
            "id": "b8431831-6a77-434e-ac4a-7e379550714f",
            "Navn": "fjær-støvel-konsul-tjeneste",
            "metoder": [
                "GÅ"
            ],
            "http_if_terminated": falskt,
            "https_only": falskt,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "URIS": [
                "/tjeneste"
            ],
            "preserve_host": falskt,
            "upstream_connect_timeout": 60 000,
            "upstream_read_timeout": 60 000,
            "upstream_send_timeout": 60 000,
            "Retries "Retrys": 5
        }
    ]
}


Tilgangsgrensesnittene returnerer følgende:

{
    "msg": "ok",
    "date": {
        "poengsum": 42,
        "Navn": "Tre",
        "id": 1,
        "alder": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "kode": 200
}
{
    "msg": "ok",
    "date": {
        "poengsum": 505,
        "Navn": "Tre",
        "id": 1,
        "alder": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "kode": 200
}

Legg til Key-Auth-pluginen

Åpne nøkkelautentiseringspluginen


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": falskt,
                "run_on_preflight": Sant,
                "anonym": "",
                "hide_credentials": falskt,
                "key_names": [
                        "Apikey"
                ]
        },
        "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "aktivert": Sant,
        "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
        "Navn": "Key-Auth"
}

Deretter får du tilgang til grensesnittet med en feilmelding som denne:

Innloggingen med hyperkoblingen er synlig.
#输出
{
    "melding": "Ingen API-nøkkel funnet i forespørsel"
}

Fjern key-auth-pluginen



Sjekk ut API-binding-pluginen

Innloggingen med hyperkoblingen er synlig.
# Utdata:
{
    "total": 0,
    "Data": []
}

Legg til den ratebegrensende plugin-hastighetsbegrensningen


Produksjon

{
    "created_at": 1515068825000,
    "config": {
        "minutt": 10,
        "policy": "klynge",
        "redis_timeout": 2000,
        "hide_client_headers": falskt,
        "andre": 2,
        "limit_by": "forbruker",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": Sant
    },
    "ID": "482C627F-4041-4320-9B2F-0CC7722B92EA",
    "navn": "prisbegrensende",
    "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "aktivert": sant
}

Når tilgangsgrensesnittet overstiger grensen, mottas følgende returer:


Retur

{
    "melding": "API-hastighetsgrense overskredet"
}

Det er imidlertid fortsatt noen problemer, fordi meldingsformatet er fikset, utdataformatet ikke er konsistent med backend-tjenesten, og tilpassede meldingsformater må støttes.

Kong endrer unntaksreturverdien
For eksempel er tjenestens enhetlige meldingsformat som følger:

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

Vi ønsker også at unntaksreturen til Kong skal forbli i samme format som ovenfor. Deretter kan vi direkte endre kildekoden til Kong, som faktisk er veldig enkel.

Start med å laste ned kildekoden

#下载kong插件源码

Git-klonegit@github.com:Kong/kong.git

Finn utgangskoden som skal endres

Utdatakoden ligger i kong/kong/tools/responses.lua, åpne den for redigering.



Lagre, og kompiler deretter

[root@tree81 kong]# luarocker lager
kong 0.11.2-0 er nå installert i /usr/local (lisens: MIT)

Start opp, prøv igjen

Oppdater adressen raskt flere ganger på rad:Innloggingen med hyperkoblingen er synlig.Får en feilmelding:

{
    "kode": 429,
    "msg": "API-hastighetsgrense overskredet"
}

Ferdig, perfekt :)




Foregående:jQuery laster inn et tekststykke via AJAX
Neste:init: function () jquery对象的构造函数
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com