Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
API Gatewayと少し仲良くなってみた!
Search
Nao Masuya
April 16, 2024
Technology
0
510
API Gatewayと少し仲良くなってみた!
2024/4/16 JAWS ランチ会のLT資料。
API GatewayでのMockAPIの作り方を簡単に紹介!
Nao Masuya
April 16, 2024
Tweet
Share
More Decks by Nao Masuya
See All by Nao Masuya
AWS TransferFamilyを使ってみた!
masuchoku
0
110
AWSを触ってきた数年間を振り返る!
masuchoku
1
160
Step Functionsと少し仲良くなってみた
masuchoku
1
340
スライド作りから LTを楽しもう! エンジョイ、 エンジニアライフ!
masuchoku
1
380
APCのAWS認定マスターたちに聞いてみた
masuchoku
0
120
AppSync入門! GraphQL APIを作ってみた!
masuchoku
3
780
AWSとJenkinsおじさん で学んできたCI_CD
masuchoku
1
900
推しメンは Systems Manager
masuchoku
0
95
Other Decks in Technology
See All in Technology
Godot Engineについて調べてみた
unsoluble_sugar
0
390
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
7.6k
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
12
1.7k
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
870
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
3
2.1k
新卒1年目、はじめてのアプリケーションサーバー【IBM WebSphere Liberty】
ktgrryt
0
110
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
Docker Desktop で Docker を始めよう
zembutsu
PRO
0
160
Azureの開発で辛いところ
re3turn
0
240
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
850
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
220
Featured
See All Featured
Bash Introduction
62gerente
610
210k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Optimising Largest Contentful Paint
csswizardry
33
3k
Optimizing for Happiness
mojombo
376
70k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Being A Developer After 40
akosma
89
590k
Fireside Chat
paigeccino
34
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Transcript
API Gatewayと少し仲良くなってみた! 2024/4/16 JAWS ランチ会 株式会社エーピーコミュニケーションズ 升谷直緒
2 所属 株式会社エーピーコミュニケーションズ @apc_tweet 自己紹介
3 自己紹介 株式会社 エーピーコミュニケーションズ システム基盤サービス事業本部 クラウド事業部 IaC技術推進部 升谷直緒 • 2020年入社
• SIerとして5年目 • AWSは使い始めて4年目 • CI/CDの導入支援 • Webアプリの改善運用 • リモートワーク @masuchoku
4 アウトプット • ブログ ◦ 月1程度で更新したい • 登壇 ◦ JAWS
▪ 社外の人と関われる貴重な機会 ▪ 普段使わないAWSサービスに触れる ▪ さまざまな支部があるから色々参加してみ るのと楽しい ◦ Women Developers Summit 2023 ▪ 女性エンジニアのイベント ▪ アウトプットしよう!というテーマでLT
5 今日のテーマ API Gatewayを使ってスタブを作ってみたが、 とても簡単にできた! 今開発しているLambdaを評価したいので、 APIのスタブを作りましょう! API Gatewayでできるはず! OKです!
=テスト対象から呼び出されるものの代わり =張りぼて
6 今日のテーマ API Gatewayを使ってスタブを作ってみたが、 とても簡単にできた! ① APIでS3のファイルURLを返して、 Lambdaでファイルの中身を処理したい ②APIキーを使った認証にしたい ③APIはクエリによって応答が変わるようにしたい!
OKです?
7 まず、API Gatewayで数分でMock API を作れることを知る まずスタブを作ろう
8 まずスタブを作ろう =API Gateway がバックエンドに送る HTTP リクエスト \ここのマッピングテンプレートに注目/ {"statusCode": 200}
↑デフォルト =API Gateway がクライアントに返す HTTP レスポンス \ここのマッピングテンプレートに注目/ { "name": "masuya", "job": "engineer", "catOrDog": "cat", "petName": "Simba" }
9 最後に忘れずにデプロイするだけで もうスタブが完成する! この際にデプロイする ステージを作る! ターミナルでcurlして確認! まずスタブを作ろう
10 次にAPIキーを付与しよう API キーは必須です True ↑デフォルトはFalseなので変更する! APIキーの作成 どのAPIにどのAPIキーを 紐づけるかやAPIの使用量を定義する 使用量プランで紐付けたい
APIキーとAPIのステージを 選択する
11 最後に忘れずにデプロイ! デプロイ先は前段でAPIキーと 紐付けたステージにする! ターミナルでcurlして確認! キーがないと失敗する! 次にAPIキーを付与しよう
12 最後にリクエストクエリによって応答を変えよう \URL クエリ文字列パラメータに注目/ when を追加してみる マッピングテンプレートをアップデートする! { #if( $input.params('when')
== "2016" ) "statusCode": 300 #else "statusCode": 200 #end } レスポンスを追加する! { "name": "masuya", "job": "student", "catOrDog": "dog", "petName": null } HTTP ステータスの正規表現 300 メソッドレスポンスの ステータスコード 300 レスポンスを追加する! HTTPステータスコード 300 レスポンス本文 コンテンツタイプ application/json
13 おなじみの、 最後に忘れずにデプロイ! ターミナルでcurlして確認! URL末尾にクエリを追加して実行! 最後にリクエストクエリによって応答を変えよう
14 今日のテーマ API Gatewayを使ってスタブを作ってみたが、 とても簡単にできた! ↑4兄弟の理解に 時間がかかったものの、 できましたー! やったー!
15 ThankYou! 今回はMockでの実装でしたが、 API Gatewayを もっと活用していきたい! 参考 https://qiita.com/oiz-y/items/64eb0a8f88765f34e6e9 https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-mock-integration-console.html