Kongo įskiepis
Kongo papildinys palaiko keturis matmenis, vykdymo tvarka yra iš viršaus į apačią, todėl reikia pažymėti, kad jei tas pats papildinys sukonfigūruotas skirtingais matmenimis, jis bus vykdomas tik vieną kartą:
- Taikykite API ir vartotojų derinį;
- Taikoma vartotojams;
- Taikoma API;
- Taikoma visame pasaulyje;
Be to, ne visi papildiniai palaiko vartotojų apibrėžimą
Kitos API pridėjimas testavimui Pridėti naują sąsają:
{ "created_at": 1515055457572, "strip_uri": tiesa, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "name": "spring-boot-consul-service2", "metodai": [ "GAUTI" ], "http_if_terminated": klaidinga, "preserve_host": klaidinga, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/vartotojas" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "pakartojimai": 5, "https_only": klaidinga
}
Pridėti garus
{ "created_at": 1515055993113, "užsakymų sąrašas": [ 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", "Lizdai": 100
}
Tikslų įtraukimas
Tagets informacija
{ "iš viso": 3, "duomenys": [ { "created_at": 1515056103599, "id": "994e7886-3e48-45cb-80ad-3f7918ede007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "target": "192.168.0.186:17004", "Svoris": 15 }, { "created_at": 1515056109570, "id": "03b477ee-a69d-49ee-9892-276f451c373c", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "target": "192.168.0.185:17004", "Svoris": 15 }, { "created_at": 1515056112730, "id": "8ace8d83-4504-4334-ad04-f0b536963df9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "target": "192.168.0.184:17004", "Svoris": 15 } ]
}
Dabartinis API sąrašas yra toks:
{ "iš viso": 2, "duomenys": [ { "created_at": 1515055457572, "strip_uri": tiesa, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "name": "spring-boot-consul-service2", "metodai": [ "GAUTI" ], "http_if_terminated": klaidinga, "https_only": klaidinga, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/vartotojas" ], "preserve_host": klaidinga, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "pakartojimai": 5 }, { "created_at": 1514995615974, "strip_uri": tiesa, "ID": "B8431831-6A77-434E-AC4A-7E379550714F", "name": "spring-boot-consul-service", "metodai": [ "GAUTI" ], "http_if_terminated": klaidinga, "https_only": klaidinga, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "uris": [ "/paslauga" ], "preserve_host": klaidinga, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "pakartojimai": 5 } ]
}
Prieigos sąsajos pateikia:
{ "msg": "gerai", "data": { "balas": 42, "name": "medis", "id": 1, "amžius": 12 metų, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "kodas": 200
} { "msg": "gerai", "data": { "balas": 505, "name": "medis", "id": 1, "amžius": 12 metų, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "kodas": 200
} Pridėkite "Key-Auth" papildinį
Atidarykite rakto autentifikavimo papildinį
{ "created_at": 1515066239000, "config": { "key_in_body": klaidinga, "run_on_preflight": tiesa, "anoniminis": "", "hide_credentials": klaidinga, "key_names": [ "apikey" ] }, "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "įjungta": tiesa, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "name": "rakto autentifikavimas"
} Tada pasiekite sąsają su tokia klaida:
Pašalinkite rakto autentifikavimo papildinį
Patikrinkite API susiejimo įskiepį
Pridėkite greičio ribojimo įskiepio greičio ribojimą
Rezultatas
{ "created_at": 1515068825000, "config": { "minutė": 10, "policy": "klasteris", "redis_timeout": 2000 m., "hide_client_headers": klaidinga, "antras": 2, "limit_by": "vartotojas", "redis_port": 6379, "redis_database": 0, "fault_tolerant": tiesa }, "id": "482c627f-4041-4320-9b2f-0cc7722b92ea", "name": "greičio ribojimas", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "įjungta": teisinga
} Kai prieigos sąsaja viršija ribą, bus gautos šios grąžos:
Grąžinti
{ "message": "Viršyta API spartos riba"
} Tačiau vis dar yra tam tikrų problemų, nes pranešimo formatas yra fiksuotas, išvesties formatas neatitinka vidinės sistemos paslaugos ir reikia palaikyti pasirinktinius pranešimų formatus.
Kongas modifikuoja grąžinamos išimties reikšmę Pavyzdžiui, tarnybos vieningojo pranešimo formatas yra toks:
{ "kodas": 200, "msg": "gerai", "duomenys": {xxx}
} Taip pat norime, kad kongo išimtis liktų tokio paties formato, kaip ir aukščiau. Tada galime tiesiogiai modifikuoti Kongo šaltinio kodą, o tai iš tikrųjų yra labai paprasta.
Pradėkite nuo šaltinio kodo atsisiuntimo
#下载kong插件源码
git klonasgit@github.com:Kong/kong.git
Raskite modifikuojamą išvesties kodą
Išvesties kodas yra kong/kong/tools/responses.lua, atidarykite jį redaguoti.
Įrašykite, tada kompiliuokite
[root@tree81 kongas]# luarocks padaryti kong 0.11.2-0 dabar įdiegta /usr/local (licencija: MIT) Paleiskite, bandykite dar kartą
Greitai atnaujinkite adresą kelis kartus iš eilės:Hipersaito prisijungimas matomas.Gaukite klaidos pranešimą:
{ "kodas": 429, "msg": "Viršyta API spartos riba"
} Atlikta, tobula :) |