SlideShare a Scribd company logo
1 of 63
Download to read offline
Swaggerで始める
モデルファーストなAPI開発
NRIネットコム株式会社 
佐々木拓郎
2015/11/21Developers.IO Meetup 番外編
∼AWS モバイル/IoT サービス徹底攻略∼
佐々木拓郎
AWSとモバイルで
飯食ってます
blog: http://blog.takuros.net
twitter: @dkfj
自己紹介
ちょっと宣伝
Amazon Web Services
パターン別構築・運用ガイド
一番大切な知識と技術が身につく
http://amzn.to/1BLiYcO
AWSの一番分厚い本
(大容量480ページ)
序文に書いた言葉
もうちょっと宣伝
WEB+DB PRESS Vol.88
モバイル開発最前線 ――
ビルドもテストもデプロイも
クラウドで加速!
http://amzn.to/1QhqBl7
DeviceFarmの話も少し載せています
まだまだ宣伝
Rubyによるクローラー開発技法
巡回・解析機能の実装と21の運用例
http://amzn.to/1lsJ5id
2014年 ジュンク堂書店 
コンピュータ書 年間総合ランキング14位
Web周りのビジネスを専門としている会社
• Webシステムの企画・設計・開発・運用
• 24時間365日の運用体制
• デザインを重視し、ディレクター/デザイナーが多数在籍
• スマホ/タブレットも得意
• AWSをはじめとするクラウドにも力を入れている
• 最近のトレンドは、デジタルマーケティング
NRIネットコム
こんな会社です
新しいもの好き
2015年6月
Pepper部長
入社
たまに頭を抱えています
NAOもいます
Swaggerで始める
モデルファーストなAPI開発
アンケート
JSON or YAMLを読める人?
JSON or YAMLを書ける人?
Swaggerを知ってる人?
Swaggerを使ってる人?
CloudFormationのテンプレートを書くのが好きだ!!
今日の目的
家に帰ったらSwaggerを
触ってみたくなる
Swaggerとは?
Swagger
What is Swagger?
The goal of Swagger™ is to define a standard, language-agnostic interface to
REST APIs which allows both humans and computers to discover and
understand the capabilities of the service without access to source code,
documentation, or through network traffic inspection. When properly defined
via Swagger, a consumer can understand and interact with the remote service
with a minimal amount of implementation logic. Similar to what interfaces have
done for lower-level programming, Swagger removes the guesswork in calling
the service.
人とコンピュータに優しい
REST APIを記述する標準仕様
(を目指してます)
http://swagger.io/getting-started/
Open API Initiative
RESTful APIの記述標準化を目指す「Open API Initiative」を
マイクロソフト、Google、IBMらが立ち上げ。
Swaggerをベースに - Publickey
http://www.publickey1.jp/blog/15/open_api_initiative.html
Swaggerは、REST APIの記述に関する仕様と
それに関連するツール
それでは、REST APIとは?
REST API
Representational State Transfer
狭義のREST(RESTful)
RESTの定義を満たしたREST(実は余りない)
ステートレスなクライアント/サーバプロトコル
リソース指向
URIによるリソースの識別
HTTPメソッドを利用した操作
広義のREST(Web API)
XMLやJSONで応答(XML/JSON over HTTP)
RESTと称しているものの多くがこっち
RESTのベストプラクティス
幾つもあるので、そのごく一部を紹介
動詞ではなく名詞を使う
悪い例
/getProducts
/listOrders
良い例
GET /products : すべての製品のリストを返す
POST /products : コレクションに製品を加える
GET /products/4 : 4番の製品を取り出す
PATCH/PUT /products/4 : 4番の製品を更新する
お勧め書籍
Web API: The Good Parts
内容が平易で読みやすい
Swaggerの構造
Swagger関連の用語(の一部)
Tool Description
Swagger Spec
REST APIに対して
Swaggerの仕様に準じたドキュメント
Swagger Core
REST APIの実装から
Swagger specを生成するためのライブラリ
Swagger Codegen
コマンドラインツール
Swagger JSONからクライアントコード生成
Swagger UI
SWagger 準拠 API (Swagger SPec)から
動的にドキュメントを生成するツール
Swagger Editor
ブラウザ上で動くJSON/YAMLのエディタ
リアルタイムで構文チェック
Swaggerの概念図
サーバクライアント
API
JSON
Swagger UI
ドキュメント/UI
生成
Swagger Spec FileSwagger Editor
編集
APIコール
生成
API 生成
Swagger Core
Swagger Editor
Swagger UI
Swagger Spec
{
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "Swagger Petstore",
"description": "A sample API that uses a petstore as an example
to demonstrate features in the swagger-2.0 specification",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "Swagger API Team"
},
"license": {
"name": "MIT"
}
},
"host": "petstore.swagger.io",
"basePath": "/api",
"schemes": [
"http"
],
"consumes": [
JSONで記述
Swagger UIとEditorの
デモ
http://petstore.swagger.io/
http://editor.swagger.io/
Swagger Spec作成のアプローチ
Swagger Specをどうやって作るのか?
モデルありき
モデルを元に生成する
Swagger EditorでSwaggerの定義を作成
Swagger Specファイル作成
実装ありき
既に実装済みのREST APIが存在
実装からモデルを抽出
Swagger Specファイル作成
RESTを利用する時に
Swaggerを使うと
何が解決されるのか?
インターフェース(API)の設計書
例)Amazon S3のREST APIのリファレンス
APIドキュメントのよくある課題
API Documentの陳腐化。最新のコードに追随できない
Excellの設計書
フォーマットの統一がやりやすい
バージョン管理で差分が解りづらい
開くの面倒くさい。。。
Wiki
手軽に編集/閲覧できる
フォーマットの統一が難しい
コードのバージョン管理と紐付けが出来ない
コードとドキュメントを一緒に管理
コードとドキュメントを、一緒にバージョン管理すれば
いいじゃない。Swaggerなら簡単に扱いやすい
ドキュメントと生成物の乖離の問題
バージョン管理だけでは、生成物との同一性が保証できない
テストが必要
APIドキュメントからテストすればいいじゃない。
SwaggerならドキュメントからAPIのテストも実行できる
Vモデル
SwaggerによるAPIの動作テスト
Swagger UI
レスポンス
これに似ている
Create Table members (
member_id beignet NOT NULL AUTO_INCREMENT,
email_address varchar(255) NOT NULL,
password varchar(64)
);
Excelのテーブル定義からポチッとなでDDL生成
DDL発行
Swagger関連ツールの
導入
Swagger Editorのインストール
Node.js前提
ソースのダウンロードして、httpサーバとして起動
$ git clone https://github.com/swagger-api/swagger-editor.git
$ cd swagger-editor
$ npm start
Swagger UIのインストール
Node.js前提、gulpも必要
ビルドして、./dist/index.htmlをブラウザでオープン
$ git clone https://github.com/swagger-api/swagger-ui.git
$ cd swagger-ui
$ npm install
$ gulp
API Gateway ✕ Swagger
API Gatewayとは?
AWSやインターネット上のサービスに対し
てREST APIを提供するサービス
4つの機能
Lambda連携
HTTP Proxy
AWS Proxy
Mock機能
マネージド・サービス
スケーラブル
(ユーザは)メンテナンスフリー
API Gatewayは、素晴らしいサービス
工夫次第で、いろいろ活用できる
ただし、UIからの設定が面倒くさい
API Gatewayの設定デモ(モック機能編)
設定項目が多く、やってられん!!
そんな貴方に朗報が!!
AWS API Gateway Importer
AWS謹製のAPI Gatewayの設定インポートツール
AWS CLIツールを利用してSwagger Specを元に
API Gatewayを作成
実体は、Java
Java 1.8以上
要Maven
Importer
Swagger Spec
AWS API Gateway Importerによる
API Gateway作成のデモ
Macの場合
必要ツールのインストール
ビルド
API Gateway Importerのインストール
$ brew install Caskroom/cask/java
$ brew install maven
$ git clone https://github.com/awslabs/aws-apigateway-swagger-
importer.git
$ cd aws-apigateway-swagger-importer/
$ mvn assembly:assembly
インストール後の稼働テスト
$ ./aws-api-import.sh
$ ./aws-api-import.sh
Usage: aws-api-import [options] Path to API definition file to
import
Options:
--create, -c
Create a new API
Default: false
--deploy, -d
Stage used to deploy the API
--help
Default: false
--profile, -p
AWS CLI profile to use
Default: default
--raml-config
Provide a configuration file to load AWS information from
--test, -t
Delete the API after import (create only)
Default: false
--update, -u
API Gatewayの作成
$ ls tst/resources/swagger/
apigateway.json petstore-with-external-docs.json
basic.json petstore.json
large.json test.json
petstore-expanded.json uber.json
petstore-minimal.json uber.yaml
petstore-simple.json
用意されているテンプレートを利用
実行
$ ./aws-api-import.sh -c tst/resources/swagger/petstore-simple.json
2015-11-21 07:42:29,295 INFO - Skip unsupported property name
region in profile [default].
2015-11-21 07:42:29,297 INFO - Skip unsupported property name
region in profile [dev].
2015-11-21 07:42:32,823 INFO - Attempting to create API from
Swagger definition. Swagger file: tst/resources/swagger/petstore-
simple.json
作成されたAPI Gatewayの確認
AWS Consleで確認
新規で作成されている
更新
API_IDを元に更新できる
https://console.aws.amazon.com/apigateway/home?
region=us-east-1#/restapis/ue6wiba5e7/
これがID
コマンド
./aws-api-import.sh --update API_ID --deploy
STAGE_NAME path/to/swagger.yaml
疑問
Updateの適切な使い方
依存関係で死ぬことがある
原子性 (ATOMICITY)が保証されていないっぽい
ステージを別けて利用する?
 バージョンで管理したい
 Blue-Green Deployしたい
参考情報
API GatewayのCLIが利用可能
o create-api-key
o create-base-path-mapping
o create-deployment
o create-domain-name
o create-model
o create-resource
o create-rest-api
o create-stage
o delete-api-key
o delete-base-path-mapping
o delete-client-certificate
o delete-deployment
o delete-domain-name
o delete-integration
o delete-integration-response
o delete-method
o delete-method-response
o delete-model
o delete-resource
o delete-rest-api
o delete-stage
o flush-stage-cache
o generate-client-certificate
o get-account
o get-api-key
o get-api-keys
o get-base-path-mapping
o get-base-path-mappings
o get-client-certificate
o get-client-certificates
o get-deployment
o get-deployments
o get-domain-name
o get-domain-names
o get-integration
o get-integration-response
o get-method
o get-method-response
o get-model
o get-model-template
o get-models
o get-resource
o get-resources
o get-rest-api
o get-rest-apis
o get-sdk
o get-stage
o get-stages
o help
o put-integration
o put-integration-response
o put-method
o put-method-response
o test-invoke-method
o update-account
o update-api-key
o update-base-path-mapping
o update-client-certificate
o update-deployment
o update-domain-name
o update-integration
o update-integration-response
o update-method
o update-method-response
o update-model
o update-resource
o update-rest-api
o update-stage
API作成の流れ with Swagger
1. Swagger EditorでSpecを書く
2. AWS API Gateway Importerでインポート
3. SpecのHost名を書き換え
 (DNSのCName設定の方がスマート?)
4. Swagger UIでテストしてみる
あまりスマートではないので、CLIと組み合わせ?
POSTメソッドのテスト
Chrome拡張のPostmanというツールもあるよ
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop
Swaggerを使ってみた感想
最初の取っ付きにくさ、最強
機能が多すぎて、何を使ってよいか解らない
環境面の用意が面倒くさい
ドキュメント化のUIやエディタは便利
アノテーションは、たぶん使わない
Electronで、ディスクトップアプリ化してみようか?
何故、API化するのか?
5年前に作ったとあるサービス
http://www.nri-net.com/mobileconf/
https://www.youtube.com/watch?v=7Rk2pL3PAXc
疎結合なシステム
Webサーバ データベース
サーバ(会議システム)
参照ページの通知
初回ダウンロード
参照ページの同期
サーバ・アプリ間は、APIを通じてのやり取り
クライアント(iPad)
API
クライアントの追加
http://nri-net.com/company/news/20151119.html
疎結合なシステム
Webサーバ データベース
サーバ(会議システム)
参照ページの通知
初回ダウンロード
参照ページの同期
サーバ側は、何も手を加えなくても良い
クライアント(iPad)
API
クライアント(Windows)
追加
ちなみにサーバ部分を
API Gateway + Lambda + DynamoDB
に置き換えたら、
1日で出来ちゃったのは内緒
アーキテクチャ例
DynamoDB
S3
API Gateway
Lambda
ページ番号の
参照・保存
資料の
ダウンロード
WebSocketで
ページ同期
ページの通知
各種APIの呼び出し
今日の目的
家に帰ったらSwaggerを
触ってみたくなった?
ご静聴、ありがとうございました。

More Related Content

What's hot

Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)Masaya Tahara
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いota42y
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。toshihiro ichitani
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いたAkihiro Kuwano
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)Masaya Tahara
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 

What's hot (20)

Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 

Viewers also liked

Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話KEISUKE KONISHI
 
Migrate your Existing Express Apps to AWS Lambda and Amazon API Gateway
Migrate your Existing Express Apps to AWS Lambda and Amazon API GatewayMigrate your Existing Express Apps to AWS Lambda and Amazon API Gateway
Migrate your Existing Express Apps to AWS Lambda and Amazon API GatewayAmazon Web Services
 
Packetbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用までPacketbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用までSatoyuki Tsukano
 
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたJupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたSatoshi Yazawa
 
Elasticsearchと機械学習を利用したbot基盤
Elasticsearchと機械学習を利用したbot基盤Elasticsearchと機械学習を利用したbot基盤
Elasticsearchと機械学習を利用したbot基盤takahito takabayashi
 
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDBMasahiro Akita
 
OpenAPI development with Python
OpenAPI development with PythonOpenAPI development with Python
OpenAPI development with PythonTakuro Wada
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発真吾 吉田
 

Viewers also liked (9)

Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
Swagger 入門
Swagger 入門Swagger 入門
Swagger 入門
 
Migrate your Existing Express Apps to AWS Lambda and Amazon API Gateway
Migrate your Existing Express Apps to AWS Lambda and Amazon API GatewayMigrate your Existing Express Apps to AWS Lambda and Amazon API Gateway
Migrate your Existing Express Apps to AWS Lambda and Amazon API Gateway
 
Packetbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用までPacketbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用まで
 
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたJupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
 
Elasticsearchと機械学習を利用したbot基盤
Elasticsearchと機械学習を利用したbot基盤Elasticsearchと機械学習を利用したbot基盤
Elasticsearchと機械学習を利用したbot基盤
 
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
 
OpenAPI development with Python
OpenAPI development with PythonOpenAPI development with Python
OpenAPI development with Python
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
 

Similar to Swaggerで始めるモデルファーストなAPI開発

Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API GatewayTakuro Sasaki
 
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいはじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいKazumi IWANAGA
 
モバイル開発を便利にするAWS
モバイル開発を便利にするAWSモバイル開発を便利にするAWS
モバイル開発を便利にするAWSSatoshi Takayanagi
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験miso- soup3
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Yasuhiro Horiuchi
 
AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現HIRA
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
AWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンドAWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンド暁 三宅
 
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流についてAzureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について真吾 吉田
 
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話Takahiro Moteki
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWSYasuhiro Araki, Ph.D
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから真吾 吉田
 
アウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもするアウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもするMitsuhiro Yamashita
 
AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門Amazon Web Services Japan
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublicjunkoy66
 

Similar to Swaggerで始めるモデルファーストなAPI開発 (20)

Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいはじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
 
Serverless for VUI
Serverless for VUIServerless for VUI
Serverless for VUI
 
モバイル開発を便利にするAWS
モバイル開発を便利にするAWSモバイル開発を便利にするAWS
モバイル開発を便利にするAWS
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
 
AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
AWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンドAWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンド
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流についてAzureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
 
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWS
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
アウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもするアウトプットはスキルアップもするしトクもする
アウトプットはスキルアップもするしトクもする
 
AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic
 

More from Takuro Sasaki

JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方Takuro Sasaki
 
Crawler for Non engineer
Crawler for Non engineerCrawler for Non engineer
Crawler for Non engineerTakuro Sasaki
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowlerTakuro Sasaki
 
Innovation eggcloudnative
Innovation eggcloudnativeInnovation eggcloudnative
Innovation eggcloudnativeTakuro Sasaki
 
Lambda認証認可パターン
Lambda認証認可パターンLambda認証認可パターン
Lambda認証認可パターンTakuro Sasaki
 
Rubyで操るAWS 第67回Ruby関西 勉強会
Rubyで操るAWS 第67回Ruby関西 勉強会Rubyで操るAWS 第67回Ruby関西 勉強会
Rubyで操るAWS 第67回Ruby関西 勉強会Takuro Sasaki
 
JAWS-UG初心者支部 AWS書籍活用術
JAWS-UG初心者支部 AWS書籍活用術JAWS-UG初心者支部 AWS書籍活用術
JAWS-UG初心者支部 AWS書籍活用術Takuro Sasaki
 
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)Takuro Sasaki
 
JAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearchJAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearchTakuro Sasaki
 
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングAWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングTakuro Sasaki
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスTakuro Sasaki
 
サイト/ブログから本文抽出する方法
サイト/ブログから本文抽出する方法サイト/ブログから本文抽出する方法
サイト/ブログから本文抽出する方法Takuro Sasaki
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerTakuro Sasaki
 
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIPJAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIPTakuro Sasaki
 
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングRubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングTakuro Sasaki
 
Jawsug osaka10 service&regions
Jawsug osaka10 service&regionsJawsug osaka10 service&regions
Jawsug osaka10 service&regionsTakuro Sasaki
 
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!Takuro Sasaki
 
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用Takuro Sasaki
 
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)Takuro Sasaki
 

More from Takuro Sasaki (20)

JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
 
Crawler for Non engineer
Crawler for Non engineerCrawler for Non engineer
Crawler for Non engineer
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
Innovation eggcloudnative
Innovation eggcloudnativeInnovation eggcloudnative
Innovation eggcloudnative
 
Lambda認証認可パターン
Lambda認証認可パターンLambda認証認可パターン
Lambda認証認可パターン
 
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
 
Rubyで操るAWS 第67回Ruby関西 勉強会
Rubyで操るAWS 第67回Ruby関西 勉強会Rubyで操るAWS 第67回Ruby関西 勉強会
Rubyで操るAWS 第67回Ruby関西 勉強会
 
JAWS-UG初心者支部 AWS書籍活用術
JAWS-UG初心者支部 AWS書籍活用術JAWS-UG初心者支部 AWS書籍活用術
JAWS-UG初心者支部 AWS書籍活用術
 
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)
 
JAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearchJAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearch
 
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングAWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
 
サイト/ブログから本文抽出する方法
サイト/ブログから本文抽出する方法サイト/ブログから本文抽出する方法
サイト/ブログから本文抽出する方法
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
 
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIPJAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
 
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングRubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
 
Jawsug osaka10 service&regions
Jawsug osaka10 service&regionsJawsug osaka10 service&regions
Jawsug osaka10 service&regions
 
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
 
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
 
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)
 

Swaggerで始めるモデルファーストなAPI開発