Kong plugin
Kongov plugin podporuje štyri rozmery, poradie vykonávania je od vrchu nadol a treba poznamenať, že ak je ten istý plugin nastavený v rôznych dimenziách, vykoná sa iba raz:
- Aplikovať API plus spotrebiteľskú kombináciu;
- Aplikované na spotrebiteľov;
- Aplikované v API;
- Aplikované globálne;
Tiež nie všetky pluginy podporujú definovanie spotrebiteľov
Pridať ďalšie API na testovanie Pridajte nové rozhranie:
{ "created_at": 1515055457572, "strip_uri": pravda, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "meno": "spring-boot-consul-service2", "metódy": [ "CHOĎ" ], "http_if_terminated": nepravda, "preserve_host": nepravda, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/user" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "opakovania": 5, "https_only": falošné
}
Add steams
{ "created_at": 1515055993113, "Orderlist": [ 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", "meno": "spring-boot-consul-service2.service.dc1.consul", "Sloty": 100
}
Pridať ciele
Informácie o tagetoch
{ "celkom": 3, "dáta": [ { "created_at": 1515056103599, "id": "994e7886-3e48-45cb-80ad-3f7918ede007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "cieľ": "192.168.0.186:17004", "váha": 15 }, { "created_at": 1515056109570, "ID": "03b477EE-A69D-49EE-9892-276F451C373C", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "cieľ": "192.168.0.185:17004", "váha": 15 }, { "created_at": 1515056112730, "ID": "8ace8d83-4504-4334-ad04-f0b536963df9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "cieľ": "192.168.0.184:17004", "váha": 15 } ]
}
Aktuálny zoznam API je nasledovný:
{ "celkom": 2, "dáta": [ { "created_at": 1515055457572, "strip_uri": pravda, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "meno": "spring-boot-consul-service2", "metódy": [ "CHOĎ" ], "http_if_terminated": nepravda, "https_only": nepravda, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/user" ], "preserve_host": nepravda, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "opakovania": 5 }, { "created_at": 1514995615974, "strip_uri": pravda, "ID": "b8431831-6a77-434e-ac4a-7e379550714f", "názov": "pružinová čižma-konzul-služba", "metódy": [ "CHOĎ" ], "http_if_terminated": nepravda, "https_only": nepravda, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "uris": [ "/service" ], "preserve_host": nepravda, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "opakovania": 5 } ]
}
Prístupové rozhrania vracajú nasledovné:
{ "MSG": "OK", "date": { "skóre": 42, "meno": "strom", "id": 1, "vek": 12, "terazTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "kód": 200
} { "MSG": "OK", "date": { "skóre": 505, "meno": "strom", "id": 1, "vek": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "kód": 200
} Pridajte plugin Key-Auth
Otvorte plugin na overenie kľúča
{ "created_at": 1515066239000, "config": { "key_in_body": nepravda, "run_on_preflight": pravda, "anonymous": "", "hide_credentials": nepravda, "key_names": [ "Apikey" ] }, "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "povolené": pravda, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "meno": "key-auth"
} Potom pristupte k rozhraniu s chybou ako táto:
Odstráňte plugin na overenie kľúča
Pozrite si plugin na viazanie API
Pridajte plugin obmedzujúci rýchlosť
Výstup
{ "created_at": 1515068825000, "config": { "minúta": 10, "politika": "cluster", "redis_timeout": 2000, "hide_client_headers": nepravda, "druhý": 2, "limit_by": "spotrebiteľ", "redis_port": 6379, "redis_database": 0, "fault_tolerant": pravda }, "ID": "482C627F-4041-4320-9B2F-0cc7722B92EA", "názov": "obmedzujúca rýchlosť", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "povolené": pravda
} Keď prístupové rozhranie prekročí limit, dostanú sa nasledujúce výsledky:
Návrat
{ "message": "Limit API prekročený"
} Napriek tomu však stále existujú určité problémy, pretože formát správ je pevne daný, výstupný formát nie je konzistentný so službou na pozadí a je potrebné podporovať vlastné formáty správ.
Kong upravuje hodnotu návratu výnimky Napríklad formát jednotnej správy služby je nasledovný:
{ "kód": 200, "MSG": "OK", "data": {xxx}
} Chceme tiež, aby výnimka návratu kongu zostala v rovnakom formáte ako vyššie. Potom môžeme priamo upraviť zdrojový kód Kong, čo je vlastne veľmi jednoduché.
Začnite stiahnutím zdrojového kódu
#下载kong插件源码
git clonegit@github.com:Kong/kong.git
Nájdite výstupný kód na úpravu
Výstupný kód sa nachádza v kong/kong/tools/responses.lua, otvorte ho na úpravu.
Ulož, potom skompiluj
[root@tree81 Kong]# Luarocks vyrábajú kong 0.11.2-0 je teraz nainštalovaný v /usr/local (licencia: MIT) Spustiť, skúsiť znova
Rýchlo obnovte adresu niekoľkokrát za sebou:Prihlásenie na hypertextový odkaz je viditeľné.Zobrazí sa chybová správa:
{ "kód": 429, "msg": "Limit API prekročený"
} Hotovo, perfektný :) |