안녕하세요 이정운 입니다.
이번에 소개해드리는 강좌는 IBM API Connect 에 대한 강좌입니다. 우선적으로 IBM API Connect 에 대해서 간단한 소개를 드리자면 현대의 디지털 애플리케이션의 핵심인 기업 수준의 API 와 Microservices 를 위한 통합된 생성, 실행, 관리 및 보안에 대한 기반을 제공하는 API 플랫폼으로 생각하시면 됩니다. 일반적으로 이러한 솔루션을 시장에서는 API 관리(Management) or 플랫폼이라고 이야기 합니다.
IBM API Connect 는 이러한 API 관리 기능에 추가하여 이전에 node.js 업계의 강자였던 StrongLoop 를인수 및 해당 솔루션 기능을 추가 도입하여 API 를 생성하기 위한 자동화, 비주얼 및 코딩 옵션등이 보다 강화된 버전의 솔루션입니다. 예를 들어 별도의 코딩 없이도 간단하게 DB 의 연결을 정의하고 Table 과 Field 명을 정의하면 자동으로 REST API 를 생성하고 바로 서비스를 수행할 수 있습니다.
다시 말씀드려, 기존의 API 관리 솔루션이 만들어져있는 API 에 대한 관리/보안/거버넌스에 집중한다면 IBM API Connect 는 이에 덧붙여 실제적으로 API 생성(Create)/수행(Run) 에 대한기능도 추가하여 API 에 대한 전체적인 라이프사이클을 관리할 수 있는 솔루션입니다. (강좌에서 다룰 예정이지만 StringLoop 가 가지고 있는 API 생성/수행에 대한 강력한 기능이 모두 포함되어 있고 그렇기 때문에 이름도 기존 4.0 버전까지는 IBM API Management 라는 이름을 가지고 있었으나 올해 출시된 5.0 버전부터는 이름이 IBM API Connect 로 변경되었습니다.)
기존 Legacy 시스템에 대해서 클릭 몇번만으로 바로 API 를 생성/수행할 수 있으며 이에대한 관리/보안을 책임질 수 있는 것이 IBM API Connect 솔루션이 가진 가장 큰 장점입니다. IBM API Connect 는 다양한 기능을 가지고 있으므로 기업 입장에서 어떻게 포지셔닝 할 것인가는 각 기업입장이나 환경에 따라 달라지겠지만 크게 두 가지로 형태로 접근되어지지 않을까 합니다.
1) 기존 Legacy 의 다양한 API 를 관리하고 안정적으로 외부로 노출하기 위한 API Management 역할
2) 마이크로서비스 아키텍처형태의 서비스 구성 변환을 위한 API 서비스 생성과 API Gateway 역할
IBM API Connect 에 대한 간단한 설명은 이와 같으며 설명만으로는 해당 솔루션이 어떤 역할을 수행하는지 이해가 어렵기 때문에 간단하게 Step-by-step 형태로 따라해 볼수 있는 강좌를 진행해 보고자 합니다. 시간이 허락하는 한도에서 최대한 IBM API Connect 에서 연속적으로 강좌를 통해서 다뤄볼 예정이므로 많은 관심 부탁드리며 그럼 바로 강좌를 진행하도록 하겠습니다.
참고로 첫 강좌는 이전 버전인 IBM API Management 에 대해서 이해하시는 분들을 위해서 IBM API Connect 의 API Management 역할에 관련된 부분을 먼저 진행하고 이후에 새롭게 추가된 API 생성(create)/수행(run) 에 대해서 다루도록 하겠습니다.
1) API 작성(등록) 하기
0. 이 강좌는 기본적으로 IBM API Connect 가 설치 되어있다는 가정을 가지고(또는, IBM Bluemix 내의 해당 서비스 사용) 실제 서비스가 가능한 간단한 REST/JSON 샘플 애플리케이션을 IBM API Connect 에서 직접 사용 용 및 관리하기 위하여 등록/테스트하는 것과 같이 실제 사용하는 방법에 대해서 집중하여 강좌를 진행하도록 하겠습니다.
참고 : 가급적으로 IBM API Connect 5.0 관련 작업은 Internet Explorer 보다는 Firefox 나 Chrome 에서 진행하시기를 추천드립니다.
IBM API Connect 5.0 온라인 메뉴얼 (참고로 언어를 한글을 선택하면 한글로 메뉴얼 확인이 가능)
https://www.ibm.com/support/knowledgecenter/SSMNED_5.0.0/mapfiles/getting_started.html
1. IBM API Connect 관리콘솔에 접속하여 사용자 이름/비밀번호를 넣고 접속합니다.
(예 : https://192.168.225.100/apim/)
2. 대시보드가 나오면 왼쪽 상단의 세줄 표시를 클릭후 나온 메뉴에서 ‘초안(draft)’ 를 선택합니다.
3. 초안을 선택하면 하단과 같이 제품과 API 를 확인할 수 있습니다.
4. API 를 하나 추가하기 위해서 API 에서 추가 버튼을 클릭하고 팝업 메뉴에서 API 를 선택합니다.
5. 새 API 추가 마법사를 확인하고 제목, 이름, 기본 경로등을 넣어 줍니다.
6. 해당 API 를 제품(Product) 에 추가할 것인가에 대한 물음이 나오면 ‘제품에 추가하지 않음’을 선택하고 ‘추가’ 버튼을 클릭하여 진행합니다.
7. 위와 같은 작업을 수행하면 하단과 같이 간단하게 API 가 작성된 것을 확인할 수 있으며 왼쪽 메뉴에서 해당 API 의 각 정보를 확인할 수 있습니다.(Swagger 2.0 표준 형태로 구성)
8. 예를 들어 그 중에 하단과 같이 보안 정의를 보시면 Client ID, 즉 API 키를 기본 보안으로 사용하는 것으로 설정되어 있는 것을 확인할 수 있습니다.
참고) 이제부터 본 강좌에서 등록하고자 하는 API 는 하단의 샘플 API 로서 간단하게 대출금, 이자율, 대출기간을 받아서 JSON 형태로 입력 받은 값과 매달 값아야할 금액을 알려주는 단순 API 호출에 대한 proxy 서비스 입니다.
실제로 테스트를 해보고 싶으신데 서비스가 없거나 만들기 귀찮으신 분들은 IBM Bluemix 상에서 테스트를 위해 공개된 IBM API Management 샘플 애플리케이션을 사용해도 됩니다.
https://apim-services.mybluemix.net/
실제로 해당 서비스중에 BankA 서비스가 상단에 언급된 서비스와 거의 동일한 서비스를 오픈해서 제공하고 있습니다.
https://apim-services.mybluemix.net/banka/v1/loans/quote?apr=0.1&amount=10000&term=10
9. 이제 API 에 대한 구체적인 구현을 넣기 위해 ‘경로(Path)’ 를 선택하고 ‘+’ 버튼을 클릭합니다.
10. 경로에는 실제 API 호출을 수행할 경로 주소를 넣고 Get 메소드가 기본으로 생성된 것을 확인합니다. (필요하면 매개변수 추가를 통해서 POST, PUT 과 같은 다른 메소드 추가가 가능합니다.)
11. Get 메소를 클릭하여 해당 탭을 확장하고 세부 메뉴를 확인합니다.
12. 입력 받는 파라미터를 인식하기 위하여 조회(Query) 위치로 매개변수를 하단과 같이 3개 추가하고 각각의 유형이나 필수 여부를 정의합니다.
13. 지금까지 작성한 내용을 저장하고 상단에 있는 메뉴중에서 어셈블(Assemble)을 클릭하면 하단과 같이 어셈블을 손쉽게 구현하기 위한 GUI 형태의 디자이너 화면이 나타납니다. 어셈블이란 말그대로 다양한 API 조합에 관련된 기능을 사용할 수 있으며 해당 API 의 실제 액션 또는 기능을 구현할 수 있는 메뉴입니다.
14. 어셈블에서 이미 만들어져있는 기본 Invoke 를 클릭하여 Invoke URL 에 실제 호출되는 주소를 넣습니다. 이때 기존에 만든 매개변수를 사용하기 위하여 실제 매개변수가 들어가는 위치에는 ‘{매개변수명}’ 형태로 값을 입력합니다.
http://192.168.225.10:9071/loans/v1/quote?loanAmount={loanAmount}&annualInterestRate={annualInterestRate}&termInMonths={termInMonths}
15. 여기까지 잘 따라오셨다면 저장을 누르면 되며 기본적으로 간단한 호출을 수행하는 API 등록 및 구성이 완료된 것입니다.
참고) 어셈블의 GUI 디자이너는 직접 코딩하는 것이 아니라 왼쪽에 만들어져 있는 컴포넌트를 Drag&Drop 으로 가져와서 손쉽게 설정하여 API 의 액션을 자유롭게 구성할 수 있도록 되어 있습니다. 예를 들어 log 를 추가하고자 한다면 하단과 같이 activity-log 컴포넌트를 가져다가 Invoke 호출 앞에 넣어주기만 하면 됩니다.
2) API 테스트 하기
0. 지금까지 작성한 간단한 API 를 실제로 테스트하기 위해서는 만들어진 API 를 계획(Plan) 을 가지고 있는 제품(Product) 에 포함하고 배포(Staging) 하고 공개(Publish) 해야 합니다. 제품은 API 와 계획의 집합이 마치 하나의 상품처럼 모여있는 집합이라고 보시면 되며 계획은 서비스 품질에 대한 레벨로 보시면 됩니다. 예를 들어 계획은 구독의 승인 여부나 1시간에 100건과 같은 유량제어와 같이 서비스 레벨을 정의하여 골드, 실버와 같이 여러가지 서비스 레벨을 계획으로 만들수 있으며 API 별로 해당 계획에 등록될 수 있습니다. 또한, 이렇게 정의된 계획은 서비스 종류에 따라 하나의 제품에 등록될 수 있습니다. 좀 더 자세한 내용이 궁금하신 분들은 하단의 메뉴얼을 참고하시기 바라겠습니다.
https://www.ibm.com/support/knowledgecenter/SSMNED_5.0.0/com.ibm.apic.toolkit.doc/capim_products.html
1. 초안 메뉴로 다시 돌아가서 제품에서 추가 버튼을 클릭하여 새 제품을 선택합니다.
2. 새 제품 추가 마법사에 간단한 이름과 버전을 넣어줍니다.
3. 해당 API 를 표시할 대상과 등록 가능 대상을 조정하는 가시성이나 서비스 레벨을 지정하는 계획과 같은 제품에 대한 상세 정보를 확인할 수 있으며 지금 막 만든 제품이라 API 가 비어있는 것을 확인할 수 있습니다. (기본적으로 제품은 서비스 제한이 없는 기본 계획을 미리 가지고 있습니다.)
4. API 메뉴에서 ‘+’ 버튼을 클릭하여 방금 만든 API 를 추가한 후 저장합니다.
5. 저장이 완료된 후 오른쪽 상단에 구름 모양 아이콘을 선택하여 실제 Sandbox 카탈로그(catalog) 로 스테이징합니다. (Sandbox 카탈로그는 테스트를 위한 기본 환경이며 필요시 다양한 카탈로그(예: 운영, 스테이징, 개발등을 멀티 테넌트(논리적으로 분리) 형태로 추가해서 만들수 있습니다.)
6. 스테이징이 완료되면 대시보드에서 Sandbox 카탈로그를 선택하면 하단과 같이 방금 작성한 Loan 이라는 제품이 스테이징 된것을 확인할 수 있습니다.
7. 이제 해당 제품의 API 를 테스트 하기 위해서 등록 메뉴에서 기본으로 만들어져 있는 테스트용 APP 의 오른쪽에 ‘…’ 메뉴를 클릭하여 ‘계획에 등록’을 선택합니다.
8. 계획에 등록 마법사에서 제품이 가지고 있는 기본 계획인 Default 를 선택하고 등록을 클릭합니다.
9. 위와 같이 수행하면 하단과 같이 해당 App 에 등록 숫자가 1 증가한 것을 확인할 수 있습니다.
10. 다시 ‘초안’ 메뉴로 가서 ‘어셈블’을 선택합니다. 선택 후에 테스트를 위해서 검색 왼쪽에 위치한 ‘▶’ 버튼을 클릭합니다.
11. 테스트 설정 화면이 나오면 설정에서 테스트에 사용할 카탈로그, 제품, 계획, 애플리케이션을 선택하여 설정을 완료합니다.
12. 설정을 완료하면 하단과 같이 조작에서 만들어둔 Get 메소드의 경로인 ‘get /quote’ 를 선택하고 테스트할 매개변수를 입력합니다. 입력값을 다 넣었으며 테스트를 위하여 ‘호출’을 클릭합니다.
13. 정상적으로 수행이 되었다면 하단과 같이 APIC 관리콘솔에서 API 생성 후 바로 테스트 및 정상적인 결과를 확인할 수 있습니다.
참고) 호출시 하단과 같은 CORS 관련 메세지가 나타났다면 가이드 데로 해당 브라우저의 다른 탭에서 URL 을 직접 호출해서 인증서를 임시로 한번 승인하면 이후에는 정상적인 테스트가 가능합니다.
참고) 필요시 이전에 애플리케이션 등록 했던 메뉴에서 해당 애플리케이션에 대한 서비스 제어도 가능합니다.
3) 개발지 포탈에서 API 사용/테스트 하기
0. APIC 콘솔에서 API 를 등록하고 스테이징하게 되면 개발자 포탈에 공개가 가능합니다. API 를 활용해서 App 을 만드는 개발자들은 APIC 콘솔 접근 없이 개발자 포탈을 통해서 API 를 검색/사용/테스트 가능합니다.
참고) 개발 환경인 Sandbox 의 경우에는 스테이징 후에 테스트 호출을 하면 자동으로 해당 제품의 상태가 공개로 변경됩니다.
1. 만들어진 개발자 포탈로 접근하면 하단과 같은 개발자 포탈 화면을 확인 가능합니다. 가지고 있는 개발자 id 를 이용해서 해당 개발자 포탈에 로그인 합니다.
참고) APIC 콘솔에서 대시보드 > 카탈로그 > 설정 > 포털 메뉴에서 하단과 같이 개발자 포탈 구성 여부 및 URL 주소 또는 사용자 등록 및 초대 가능 여부등을 확인할 수 있습니다.
참고) APIC 콘솔에서 대시보드 > 카탈로그 > 개발자 메뉴에서 개발자 조직을 확인/추가/삭제가 가능하므로 개발자 조직이 정의되지 않았다면 새로 하나 추가하면 됩니다.
(로컬에서 설치해서 테스트하는 경우라면 메일로 초대(Invite) 하는 단계가 진행되므로 SMTP 서버 연동이 필요합니다.)
참고) SMTP 서버 연동은 IBM API Connect 의 CMC(Cloud Management Console) 의 설정에서 확인 및 변경 가능합니다.
(예 : https://192.168.225.100/cmc/)
2. 애플리케이션을 클릭하면 비어있는 것을 확인 가능하며 ‘새 애플리케이션 등록’ 을 클릭합니다.
3. 간단하게 애플리케이션에 대한 제목, 설명 등을 넣고 ‘전송’을 클릭하여 완료 합니다.
(OAuth 경로 재지정 URI 는 OAuth 사용시에만 필요한 설정입니다.)
4. 애플리케이션을 하나 생성하면 하단과 같이 자동으로 클라이언트 ID 와 클라이언트 시크릿이 생성되고 확인할 수 있습니다. (향후 API 호출시 해당 클라이언트 ID 호 API 기본 보안을 수행합니다.)
5. 개발자 포탈 메뉴에서 API 제품을 선택하면 방금 작성한 Loan API 를 확인할 수 있으며 해당 API 를 클릭하여 상세 메뉴를 확인 가능합니다.
6. 해당 API 의 계획을 확인하고 이를 사용하기 위해서 ‘구독 신청’ 을 클릭합니다.
7. 구독을 수행할 애플리케이션을 선택하고 구독 신청을 클릭합니다.
8. 해당 작업이 정상적으로 완료가 되면 하단과 같이 계획에 등록이 완료가 되었다는 메세지를 확인할 수 있습니다.
(이번 강좌에서 사용하는 계획은 승인없이 무제한으로 열려있는 기본 계획이라 바로 구독이 등록되는 것이며 업무적으로 필요하다고 하면 승인을 추가하여 승인을 통해서 구독 여부를 관리할 수 있습니다.)
9. 다시 API 를 선택한 후 경로를 선택하여 해당 API 의 형태나 매개 변수(예를 들어 어떤 매개변수가 있는지, 필수 여부, 스키마등) 를 확인합니다. 오른쪽에 테스트 페이지가 나온것을 한 후 매개 변수에 임의의 수를 넣어보고 호출 조작을 클릭합니다.
10. 정상적으로 해당 작업이 완료되면 하단과 같이 테스트 결과를 개발자 포탈에서 바로 확인해볼 수 있습니다.
참고) APIC 콘솔에서 대시보드 > 카탈로그 > 제품 > API 오른쪽에 있는 그래프 표시를 클릭하면 해당 API 의 모니터링 리포트를 하단과 같이 확인할 수 있습니다.
여기까지 잘 따라오셨다면 첫번째 강좌인 IBM API Connect 5.0 을 활용하여 기본적인 API 등록 및 구성/테스트, 개발자 포탈 공개 및 개발자 사용/테스트까지 잘 완료하신 것 입니다. 수고하셨습니다..^^&
APIC5_guide_01_registerAPI_juwlee201606_v1.pdf
'IBM - old > IBM APIC' 카테고리의 다른 글
[APIC]본격적으로 살펴보는 IBM API Connect 03 - API 어셈블(조립/조합) (0) | 2016.06.13 |
---|---|
[APIC]본격적으로 살펴보는 IBM API Connect 02 - API 트래픽 제어 (0) | 2016.06.10 |
사용자 정의 정책(User-defined policy) 생성하기 (0) | 2016.06.07 |
사용자 정의 정책(User-defined policy) 사용하기 (0) | 2016.06.07 |
HTTP Proxy 서비스 사용해서 HTTP 프로토콜로 API 서비스 호출하기 (0) | 2016.06.07 |
댓글