본문 바로가기

Backend Development/Spring boot

[Backend] Konga api gateway admin 활용

이전 포스트에서는 Kong api gateway opensouce버전 및 konga admin web 서버를 설치하는것을 알아봤다.

 

이번 포스트에서는 실제로 konga admin에서 service 및 route를 설정해보고 postman 으로 api gateway를 거쳐 실제 backend까지 잘 도달하는지 확인해 보고자 한다.

 

우선 localhost:8080으로 backend api 서버를 띄어두고 /api/v1/users란 api 를 테스트 api로 삼았다.

 

아래는 우선 kong에서 최종적으로 도달할 backend 주소를 입력하고 service url을 등록한다.

적절한 name을 입력하고 host에 실제 backend 주소, port에 실제 backend service port 그리고 service url path를 입력한다.

 

테스트 서버는 /api/v1 으로 url 이 시작하므로 해당 path를 등록하였다.

 

Service를 등록하고나면 service 기반에 여러가지 plugin을 붙일 수 있다. 기본적인 api key 기능을 사용하기 위해 add key auth plugin을 붙여 보았다. 간단히 api 호출시 사용할 keyname 을 입력하고 저장함.

 

등록한 Service에서 add route를 할 수 있다. 실제로 api gateway로 요청이 들어가고 등록된 route로 요청이 갈경우 route에 붙여진 service로 api 호출이 이루어 진다. 

 

service 등록시 /api/v1 으로  path를 잡았고 gateway상의 path는 /api-gateway로 잡았다. 따라서

 

local에 설치된 test backend의 http://localhost:8080/api/v1/users를 호출하려면 Gateway의 

 

http://localhost:8000/api-gateway/users를 호출하면 된다. (kong api gatway service port는 8000으로 설정해두었음).

 

route 규칙이 /api-gateway -> /api/v1 으로 설정되었으므로 뒤에 /users만 새로 붙여준것이다.

 

api key에 사용할 실제 key를 발급받으려면 consumer를 등록하여야 한다. 적당한 이름으로 등록한다.

 

등록된  Consumer 를 선택하면 하위 메뉴에 Credentials 가 보인다. 선택하고 api keys 에서 create key를 하면 api access에 사용할 key 가 발급이 된다.

 

이제 테스트를 해보자

 

확인용으로 실제 서비스 되는 backend의 api 호출을 확인한다. 정상적으로 사용자 정보가 리턴됨을 볼 수 있다.

 

이제는 api-gateway 상에서 호출을 해보자. apikey 가 잘 동작되는지 보기 위해 query param에 apikey를 전송하지 않아본다. Kong api gateway 응답으로 No API key foud 메세지가 나온다.

 

이번에는 실제로 발급받은 apikey를 실어서 보내보면 정상적으로 kong api gateway를 통해 응답이 오는 것을 볼 수 있다.

 

 

-- The End --