Plugin Kong
Il plugin di Kong supporta quattro dimensioni, l'ordine di esecuzione è dall'alto verso il basso, e va notato che se lo stesso plugin è configurato in dimensioni diverse, verrà eseguito solo una volta:
- Applica l'API più il mix dei consumatori;
- Applicato ai consumatori;
- Applicato nell'API;
- Applicato a livello globale;
Inoltre, non tutti i plugin supportano la definizione dei consumatori
Aggiungi un'altra API per i test Aggiungi una nuova interfaccia:
{ "created_at": 1515055457572, "strip_uri": vero, "id": "a99919d1-0770-40a1-81a9-e3c31FD9d282", "nome": "stivale-molle-console-servizio2", "metodi": [ "VIA" ], "http_if_terminated": falso, "preserve_host": falso, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/utente" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "ripetizioni": 5, "https_only": falso
}
Aggiungi Steam
{ "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", "nome": "molle-stivale-consule-servizio2.servizio.dc1.consul", "slot": 100
}
Aggiungi obiettivi
Informazioni di Tagets
{ "totale": 3, "dati": [ { "created_at": 1515056103599, "id": "994e7886-3e48-45cb-80AD-3F7918ede007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "obiettivo": "192.168.0.186:17004", "peso": 15 }, { "created_at": 1515056109570, "id": "03b477ee-a69d-49ee-9892-276f451c373c", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "bersaglio": "192.168.0.185:17004", "peso": 15 }, { "created_at": 1515056112730, "id": "8ace8d83-4504-4334-ad04-f0b536963df9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "bersaglio": "192.168.0.184:17004", "peso": 15 } ]
}
L'elenco attuale delle API è il seguente:
{ "totale": 2, "dati": [ { "created_at": 1515055457572, "strip_uri": vero, "id": "a99919d1-0770-40a1-81a9-e3c31FD9d282", "nome": "stivale-molle-console-servizio2", "metodi": [ "VIA" ], "http_if_terminated": falso, "https_only": falso, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/utente" ], "preserve_host": falso, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "ripetiti": 5 }, { "created_at": 1514995615974, "strip_uri": vero, "id": "b8431831-6a77-434e-ac4a-7e379550714f", "nome": "spring-boot-console-service", "metodi": [ "VIA" ], "http_if_terminated": falso, "https_only": falso, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "uris": [ "/service" ], "preserve_host": falso, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "ripetiti": 5 } ]
}
Le interfacce di accesso restituiscono quanto segue:
{ "MSG": "OK", "date": { "Punteggio": 42, "nome": "albero", "id": 1, "età": 12, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "codice": 200
} { "MSG": "OK", "date": { "Punteggio": 505, "nome": "albero", "id": 1, "età": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "codice": 200
} Aggiungi il plugin Key-Auth
Apri il plugin key-auth
{ "created_at": 1515066239000, "config": { "key_in_body": falso, "run_on_preflight": vero, "anonimo": "", "hide_credentials": falso, "key_names": [ "apikey" ] }, "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "abilitato": vero, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "nome": "key-auth"
} Poi accedi all'interfaccia con un errore come questo:
Rimuovi il plugin di autenticazione della chiave
Dai un'occhiata al plugin di binding API
Aggiungi il limite di velocità del plugin di limitazione di velocità
Output
{ "created_at": 1515068825000, "config": { "minuto": 10, "politica": "cluster", "redis_timeout": 2000, "hide_client_headers": falso, "secondo": 2, "limit_by": "consumatore", "redis_port": 6379, "redis_database": 0, "fault_tolerant": vero }, "id": "482c627f-4041-4320-9b2f-0cc7722b92ea", "name": "limitante di tasso", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "abilitato": vero
} Quando l'interfaccia di accesso supera il limite, verranno ricevute le seguenti dichiarazioni:
Ritorno
{ "message": "Limite di velocità API superato"
} Tuttavia, ci sono ancora alcuni problemi, perché il formato del messaggio è fisso, il formato di uscita non è coerente con il servizio backend e devono essere supportati formati di messaggio personalizzati.
Kong modifica il valore di ritorno delle eccezioni Ad esempio, il formato unificato dei messaggi del servizio è il seguente:
{ "codice": 200, "MSG": "OK", "data": {xxx}
} Vogliamo anche che il ritorno eccezionale del Kong rimanga nello stesso formato di quanto sopra. Poi possiamo modificare direttamente il codice sorgente di Kong, che in realtà è molto semplice.
Inizia scaricando il codice sorgente
#下载kong插件源码
Clone gitgit@github.com:Kong/kong.git
Individua il codice di output da modificare
Il codice di output si trova in kong/kong/tools/responses.lua, aprilo per la modifica.
Salva, poi compila
[root@tree81 Kong]# I Luarock fanno Kong 0.11.2-0 è ora installato in /USR/Local (licenza: MIT) Avvio, riprova
Aggiorna rapidamente l'indirizzo più volte di seguito:Il login del link ipertestuale è visibile.Ricevo un messaggio di errore:
{ "codice": 429, "msg": "Limite di velocità API superato"
} Fatto, perfetto :) |