안녕하세요 이정운 입니다.
IBM API Connect 는 Developer Toolkit 이라는 모듈을 제공하여 브라우저에서 GUI 로 작업하는 대부분의 내용을 CLI(Command Line Interface) 로도 지원 가능합니다.
이는 다시 이야기 하면 CLI 를 통해서 IBM API Connect 의 작업을 script 화 할수도 있고 다양한 솔루션과 손쉽게 연계도 가능합니다.
모 고객사의 요청으로 IBM API Connect 를 DevOps 형태로 Urbancode 나 Jenkins 와 연동하기 위한 다양한 CLI 명령들을 테스트 해봤고
간단하게 해당 내용 정리해서 공유드리오니 참고하시기 바라겠습니다.
(요즘 추세일수도 있는데 IBM API Connect 솔루션의 CLI 를 테스트 해보면서 느낀점은 git 을 사용하는 방식과 많이 닮아 있다라는 것입니다. ㅎ^^&)
CLI using developer toolkit in APIC
참고자료)
API and Product definition template examples
https://www.ibm.com/support/knowledgecenter/en/SSFS6T/com.ibm.apic.toolkit.doc/rapim_template_examples.html#reference_zsf_sx3_4w
Creating and using API and Product definitions templates
https://www.ibm.com/support/knowledgecenter/en/SSFS6T/com.ibm.apic.toolkit.doc/task_apim_cli_templates.html
Installing the toolkit
https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.toolkit.doc/tapim_cli_install.html
Getting started with the developer toolkit command-line tool
https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.toolkit.doc/capim-toolkit-cli-getting-started.html
Developer toolkit tutorials
https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.toolkit.doc/tutorial_cli_overview.html
0) Developer toolkit 설치하기
npm install -g apiconnect
1) APIC 관련 login 및 환경 설정
apic login -s 192.168.225.100 -u apic@localhost.com -p Passw0rd!
apic config:set catalog=apic-catalog://192.168.225.100/orgs/apic/catalogs/sb
2) API create 하기
apic
create --type api --title "Routes" --name routes --basepath /route
--hostname 192.168.225.10 --target-url
"http://192.168.225.10:9071/branches/v1/101/location" --version 1.0.0
--filename routes100.yaml
참고
#1) create 를 하면 기본 Template 에 따라서 api 를 위한 Open API 표준(swagger 2.0 기반)
문서인 yaml 파일이 생성됩니다. 해당 template 이 본인 환경에 맞지 않다면 하단과 같은 절차를 통해서 수정 가능합니다.
#1.1) hbs 파일 타입으로 template 생성 > http://handlebarsjs.com/ 기반
#1.2) template 을 통한 api 생성
apic create --type api --template ./basic_template.hbs --title
"Routes" --name routes --basepath /route --hostname 192.168.225.10
--target-url "http://192.168.225.10:9071/branches/v1/101/location"
--version 1.0.0 --filename routes100.yaml
#1.3) 상세사항은 상단의 참고자료 링크 참조
3)Product create 하기 (Product 는 API 를 포함하고 있으며 1:N 의 관계를 가질 수 있습니다. 좀 더 상세 내용은 다른 강좌를 참고하시기 바라겠습니다.)
apic create --type product --title "Climb On" --version 1.0.0 --apis routes100.yaml --filename climbon100.yaml
참고 #2) 마치 git 을 쓰듯 drafts:clone 명령을 사용하면 현재 APIC 에서 사용중인 전체 product/api 와 local repository 를 sync 할 수도 있습니다.
apic drafts:clone --organization apic --server 192.168.225.100
4) API 와 Product 를 draft 로 push 하기
apic drafts:push climbon100.yaml --organization apic --server 192.168.225.100
참고 #3) drafts:pull 명령을 사용하면 기존에 APIC 에 존재하는 draft 에서 API 와 Product 를 local repository 로 가져올 수 있습니다.
apic drafts:pull climb-on:1.0.0 --organization apic --server 192.168.225.100
- drafts 명령을 사용하여 APIC 에 있는 API/Product list 확인하기
apic drafts --organization apic --server 192.168.225.100
5) draft 에 있던 Product 를 Catalog 로 stage 하기
apic drafts:publish --stage climb-on:1.0.0 --catalog Sandbox --organization apic --server 192.168.225.100
6) stage 되어 있는 Product 를 Publish 하기
apic products:set climb-on:1.0.0 --status published --catalog Sandbox --organization apic --server 192.168.225.100
이렇게 하면 CLI 를 통해서 Open API 표준 형태로 API 를 생성하고 IBM API Connect 에 배포 및 스테이징/공개까지 잘 수행이 완료된 것입니다.
참고 #4) 하단의 명령을 통해서 visibility 와 subscribability 의 scope 을 변경가능합니다.
apic
products:set climb-on:1.0.0 --visibility public --subscribability
authenticated --catalog Sandbox --organization apic --server
192.168.225.100
참고 #5) 실제로 APIC 를 활용해서 DevOps 를 고려하시면 결국 생성/배포 뿐만
아니라 테스트도 같이 고려해야 합니다. IBM APIC 의 경우에는 App 을 생성해서 client id 를 받고 해당 API 를
구독하는 작업과 같은 여러 부수작업이 수반됩니다.
다만, 하단과 같이 개발 환경이라면 환경설정에서 Development mode 를 켜고 Automatic subscription 기능을 켜면 해당 메뉴에서 확인가능한 Client ID 로 어떤 API 든 바로 테스트 가능합니다.
참고
#6) 참고로 IBM API Connect 는 swagger 2.0 표준 기반의 Open API 표준을 사용합니다. 해당 표준은
다양한 확장을 사용할 수 있으며 IBM 도 일반적으로 Swagger 에 없는 Assemble 기능을 표현하기 위하여
"x-ibm-configuration" 같은 확장을 사용합니다.
'IBM - old > IBM APIC' 카테고리의 다른 글
[APIC]IBM API Connect 관련 YouTube 채널 (0) | 2017.03.07 |
---|---|
[APIC]IBM API Connect 의 Assemble 성능 테스트 및 튜닝 (0) | 2017.03.07 |
[APIC]Docker 를 통한 IBM API Connect 설치 방법 (0) | 2017.01.25 |
[APIC]기존의 SOAP 서비스를 IBM API Connect 사용해서 REST 서비스로 변환하기 (0) | 2017.01.09 |
[APIC]Installing and configuring IBM API Connect in a Docker container (0) | 2017.01.04 |
댓글