cli 를 통해 만든 action, sequence 에 endpoint를 생성 해서 http request로 db 읽고 쓰기를 해보겠다.
(궁극적으로는 REST API를 만들어 http request로 CRUD를 구현 하고자 한다.)

endpoint에는 web action을 enable 하는 방법과 api gateway를 주는 방법이 있다.
web http access 를 enable 하는 flag는 –web yes를 주면 된다.
우리가 이전 lab에서 만들었던 write-to-cloudant 에 web action을 enable 해보자.

1. endpoint 생성
$bx wsk action update write-to-cloudant –web true

web action 이 true 인 action은 아래와 같은 규칙으로 http 접근 가능하다.
https;//{APIHOST}/api/v1/web/{ACTION NAME}

그러므로 아래와 같은 endpoint가 가능하다.
https://openwhisk.ng.bluemix.net/api/v1/web/yjh@kr.ibm.com_korea/default/write-to-cloudant

2. endpoint 확인
명령어를 통해 확인 할 수도 있다.
$bx wsk action get write-to-cloudant –url

3. Test endpoint
http request를 통해 action을 수행 해보자
curl 또는 httpie 또는 브라우저에 직접 url을 입력 해보자. 잘 입력 되는지 polling을 켜두고 해보자.
https://openwhisk.ng.bluemix.net/api/v1/web/yjh@kr.ibm.com_korea/default/write-to-cloudant?docid=test3

잘 입력 된 것을 확인 할 수 있다.
아래와 같이 여러가지 방법으로 data insert 결과를 확인 할 수 있다.

a. activation log $bx wsk activation poll b. cloudant web gui c. cloudant read command $bx wsk action invoke /yjh@kr.ibm.com_korea/Bluemix_Cloudant-Serverless_Credentials-1/read –blocking –result –param dbname cats –param docid test3

4. API gateway 이용하기 일반적으로 data insert는 http의 get method로 구현하진 않는다. post 로 구현 하는게 맞다. 또한 단순히 web action 을 true라 하여 http request를 하는것 보단 api gateway를 이용하여 action을 수행 하는게 좋다. (API gateway를 이용하려면 기본적으로 action의 bx wsk action invoke 를 해야 한다.)

API gateway를 이용했을때의 장점

•Security
원치않는 접근을 막을 수 있다. authentication을 통해 access 제어가 가능하다.
API key,API secret, and OAuth validation이 가능하다.
Google,Facebook, and GitHub가 제공하는 OAuth 를 연동하여 쓸 수 있다.

 • Rate limiting
api key별로 호출 회수를 제한 할 수 있다. api public하게 사용할 경우 매우 유용하게 쓰일 기능이다.
 •Analytics
api call 을 분석하기 좋다. 누가 몇번 어떤파라미터로 call을 했는지 추적이 가능하다.

기본적으로 아래와 같은 정보를 확인 할 수 있다.
- 특정 시간동안 api 호출 수.
- 분당 API 호출수.
- 최근 100 개응답.

•Sharing
손쉽게 endpoint를 공유 할 수 있다.

•Testing
API Explorer
를 이용해 손쉽게 테스트 할 수 있다.

참조: Developing serverless backends with OpenWhisk and API Gateway integrations]

5. API gateway를 이용한 endpoint 생성
아래와 같이 api gateway를 통한 endpoint를 만들 수 있다.
action에 api endpoint mapping
$bx wsk api create /Wcloudant GET write-to-cloudant

아래와 같은 결과를 얻을 수 있다.

아래 url로 api action을 실행 할 수 있다.
https://service.us.apiconnect.ibmcloud.com/gws/apigateway/api/7bbe0aa3d0ab81a7ad43ddc9c03db9e0533d077842fb3645c22ec43323d59363/Wcloudant

이제 api gateway를 활용한 CRUD를 구현해 보자.
(모든 과정은 web gui로도 할 수 있다. web gui로 구현하는 방법은  설명하진 않겠다. web gui는 매우 직관적으로 design되어 있기에 아래 과정을 이해 한다면 설명 없이도 사용 가능할 것이다.)

[Go to HTTP API CRUD 실습]

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.