Kong vtičnik
Kongov vtičnik podpira štiri dimenzije, vrstni red izvajanja je od zgoraj navzdol, in treba je poudariti, da če je isti vtičnik konfiguriran v različnih dimenzijah, bo izveden le enkrat:
- Uporabite API plus potrošniški miks;
- Uporabljeno za potrošnike;
- Uporabljeno v API-ju;
- Uporabljeno globalno;
Prav tako vsi vtičniki ne podpirajo definiranja potrošnikov
Dodajte še en API za testiranje Dodajte nov vmesnik:
{ "created_at": 1515055457572, "strip_uri": resnično, "ID": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "ime": "spring-boot-consul-service2", "Metode": [ "POJDI" ], "http_if_terminated": napačno, "preserve_host": napačno, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/uporabnik" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "poskusi": 5, "https_only": lažno
}
Dodaj ssteam
{ "created_at": 1515055993113, "Seznam naročil": [ 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", "ime": "spring-boot-consul-service2.service.dc1.consul", "Sloti": 100
}
Dodaj cilje
Informacije o tagetsu
{ "skupaj": 3, "podatki": [ { "created_at": 1515056103599, "ID": "994e7886-3e48-45CB-80AD-3f7918EDE007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "cilj": "192.168.0.186:17004", "teža": 15 }, { "created_at": 1515056109570, "ID": "03B477EE-A69D-49EE-9892-276F451C373C", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "cilj": "192.168.0.185:17004", "teža": 15 }, { "created_at": 1515056112730, "ID": "8ace8d83-4504-4334-ad04-f0b536963df9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "cilj": "192.168.0.184:17004", "teža": 15 } ]
}
Trenutni seznam API-jev je naslednji:
{ "skupaj": 2, "podatki": [ { "created_at": 1515055457572, "strip_uri": resnično, "ID": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "ime": "spring-boot-consul-service2", "Metode": [ "POJDI" ], "http_if_terminated": napačno, "https_only": napačno, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/uporabnik" ], "preserve_host": napačno, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "ponovitve": 5 }, { "created_at": 1514995615974, "strip_uri": resnično, "ID": "b8431831-6a77-434e-ac4a-7e379550714f", "ime": "vzmetni škornji-konzul-služba", "Metode": [ "POJDI" ], "http_if_terminated": napačno, "https_only": napačno, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "uris": [ "/service" ], "preserve_host": napačno, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "ponovitve": 5 } ]
}
Dostopni vmesniki vračajo naslednje:
{ "sporočilo": "v redu", "date": { "rezultat": 42, "ime": "drevo", "id": 1, "starost": 12, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "koda": 200
} { "sporočilo": "v redu", "date": { "rezultat": 505, "ime": "drevo", "id": 1, "starost": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "koda": 200
} Dodajte vtičnik Key-Auth
Odpri vtičnik za avtentikacijo ključa
{ "created_at": 1515066239000, "config": { "key_in_body": napačno, "run_on_preflight": resnično, "anonimno": "", "hide_credentials": napačno, "key_names": [ "Apikey" ] }, "ID": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "omogočeno": resnično, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "ime": "key-auth"
} Nato dostopajte do vmesnika z napako, kot je ta:
Odstranite vtičnik za avtentrikacijo ključev
Oglejte si vtičnik za vezavo API-ja
Dodaj vtičnik za omejevanje hitrosti
Izhod
{ "created_at": 1515068825000, "config": { "minuta": 10, "politika": "grozd", "redis_timeout": 2000, "hide_client_headers": napačno, "drugi": 2, "limit_by": "potrošnik", "redis_port": 6379, "redis_database": 0, "fault_tolerant": resnično }, "ID": "482C627F-4041-4320-9B2F-0cc7722B92EA", "ime": "omejujoče hitrosti", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "omogočeno": resnično
} Ko dostopni vmesnik preseže omejitev, se prejmejo naslednji odgovori:
Vrnitev
{ "sporočilo": "Presežen je omejitev API hitrosti"
} Vendar pa še vedno obstajajo nekatere težave, saj je format sporočil fiksn, izhodni format ni skladen s storitvijo v ozadju, zato je treba podpirati prilagojene oblike sporočil.
Kong spremeni vrednost vrnjene izjeme Na primer, format združenega sporočila storitve je naslednji:
{ "koda": 200, "sporočilo": "v redu", "data": {xxx}
} Prav tako želimo, da izjema vračila Konga ostane v istem formatu kot zgoraj. Nato lahko neposredno spremenimo izvorno kodo Konga, kar je pravzaprav zelo preprosto.
Začnite s prenosom izvorne kode
#下载kong插件源码
git clonegit@github.com:Kong/kong.git
Poiščite izhodno kodo za spremembo
Izhodna koda se nahaja v kong/kong/tools/responses.lua, odpri jo za urejanje.
Shrani, nato prevedi
[root@tree81 Kong]# Luarocks naredijo Kong 0.11.2-0 je zdaj nameščen v /usr/local (licenca: MIT) Zaženi, poskusi znova
Hitro osvežite naslov večkrat zaporedoma:Prijava do hiperpovezave je vidna.Prejmete sporočilo o napaki:
{ "koda": 429, "msg": "Prekoračitev omejitve API hitrosti"
} Končano, popolno :) |