본문 바로가기
AWS

[AWS] Lambda 따라하기 (python) #5 Trigger (REST API)

by bryan.oh 2023. 1. 24.
반응형

 

 

API NAME 은 hello-bryan-rest-API 로, 이전 포스트의 http api 의 name 과 다르게 합니다.

API endpoint 가 생성되었습니다. 저 링크를 클릭하면 웹브라우저에서 호출된 결과를 확인할 수 있습니다.

 

POSTMAN 으로 호출하기.

이번에는 queryString 이나 path parameter 로 호출하지 않고, 

json body 로 호출하도록 하겠습니다.

 

POST 방식으로 넘겨서 받기 위해서 아래와 같은 코드를 추가합니다.

        if event['httpMethod'] == 'POST':
            req_data = json.loads(event['body']) # JSON 문자열 처리
            album = next(filter(lambda x: x['id'] == req_data['album_id'], album_list), None)
            body = album if album else f'not found album id : {event["album_id"]}'

소스 수정 후 "Deploy" 버튼 잊지마세요~

 

그리고 POSTMAN 으로 아래와 같이 json 형식의 파라메터를 넘기도록 해서 호출하면, 해당 결과가 나옵니다.

python code

import requests
import json

url = "https://your_url.execute-api.ap-northeast-1.amazonaws.com/default/hello-bryan"

payload = json.dumps({
  "album_id": 15
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

 

javascript code

var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "album_id": 15
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://your_url.execute-api.ap-northeast-1.amazonaws.com/default/hello-bryan", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

 

Java code

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"album_id\": 15\n}");
Request request = new Request.Builder()
  .url("https://your_url.execute-api.ap-northeast-1.amazonaws.com/default/hello-bryan")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();

 

 

 

 

 

 

728x90
반응형

댓글