Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
API Meetup
PPTX, PDF
17,886 views
Web API: The Good Parts 落穂ひろい
API Meetup Tokyo #6での水野さんの講演資料です。ご本人から許可をいただいて掲載しています
Technology
◦
Read more
18
Save
Share
Embed
Embed presentation
Download
Downloaded 37 times
1
/ 31
2
/ 31
3
/ 31
4
/ 31
5
/ 31
6
/ 31
7
/ 31
8
/ 31
9
/ 31
10
/ 31
11
/ 31
12
/ 31
13
/ 31
14
/ 31
15
/ 31
16
/ 31
Most read
17
/ 31
18
/ 31
19
/ 31
20
/ 31
21
/ 31
22
/ 31
23
/ 31
24
/ 31
25
/ 31
26
/ 31
27
/ 31
28
/ 31
29
/ 31
30
/ 31
31
/ 31
More Related Content
PPTX
脱RESTful API設計の提案
by
樽八 仲川
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
REST API のコツ
by
pospome
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PDF
Spring Boot × Vue.jsでSPAを作る
by
Go Miyasaka
PDF
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
by
JustSystems Corporation
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
脱RESTful API設計の提案
by
樽八 仲川
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
REST API のコツ
by
pospome
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
Spring Boot × Vue.jsでSPAを作る
by
Go Miyasaka
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
by
JustSystems Corporation
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
What's hot
PPTX
ゲームエンジニアのためのデータベース設計
by
sairoutine
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
by
Amazon Web Services Japan
PDF
SQLアンチパターン~スパゲッティクエリ
by
Itabashi Masayuki
PDF
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
by
Yahoo!デベロッパーネットワーク
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
Rest ful api設計入門
by
Monstar Lab Inc.
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
by
infinite_loop
PDF
HAZOP, FMEA and FTA for risk assessment.
by
Kiyoshi Ogawa
PPTX
Ansibleの最近の動向を追ってみた
by
KeijiUehata1
PDF
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
PDF
Redmine にいろいろ埋め込んでみた
by
Kohei Nakamura
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PDF
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PPTX
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
by
NTT DATA Technology & Innovation
PPTX
backlogsでもCI/CDする夢を見る
by
Takeru Maehara
ゲームエンジニアのためのデータベース設計
by
sairoutine
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
by
Amazon Web Services Japan
SQLアンチパターン~スパゲッティクエリ
by
Itabashi Masayuki
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
by
Yahoo!デベロッパーネットワーク
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
Rest ful api設計入門
by
Monstar Lab Inc.
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
by
infinite_loop
HAZOP, FMEA and FTA for risk assessment.
by
Kiyoshi Ogawa
Ansibleの最近の動向を追ってみた
by
KeijiUehata1
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
Redmine にいろいろ埋め込んでみた
by
Kohei Nakamura
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
RESTful Web アプリの設計レビューの話
by
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PostgreSQLアンチパターン
by
Soudai Sone
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
by
NTT DATA Technology & Innovation
backlogsでもCI/CDする夢を見る
by
Takeru Maehara
Similar to Web API: The Good Parts 落穂ひろい
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
by
miso- soup3
PPTX
Recommendtechbook
by
makky12
PDF
Web API のすすめ
by
Yuji Shimada
PPTX
エンジニアのための勉強会 #3 『RESTful API』
by
Naoki Yoshitake
PDF
WordPressAPI
by
Yuki Okamoto
PDF
WordPress APIで作るモバイルアプリ
by
アシアル株式会社
PPT
マッシュアップ勉強会
by
guestadcb01
PPT
マッシュアップ勉強会
by
seiryo
PDF
Web Standards 2018
by
Shogo Sensui
PDF
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
by
Kazuya Sugimoto
PDF
Api
by
Jun Chiba
PDF
Api設計
by
Yuto Suzuki
PDF
RESTful Meetup vol.3 Introduction
by
Toru Kawamura
PPTX
Web API を気軽に使えるツールやサービスのご紹介
by
CData Software Japan
PPTX
HTML5&API総まくり
by
Shumpei Shiraishi
PDF
CloudSpiral 2014年度 Webアプリ講義(1日目)
by
Shin Matsumoto
PPT
Cockatoo
by
Hiroaki Kubota
PPT
Albatross
by
Hiroaki Kubota
PDF
20080327 ku-librarians勉強会 #98:データベースからデータだけをいただく方法(web api入門)
by
kulibrarians
PDF
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
by
Toru Kawamura
50分で掴み取る ASP.NET Web API パターン&テクニック
by
miso- soup3
Recommendtechbook
by
makky12
Web API のすすめ
by
Yuji Shimada
エンジニアのための勉強会 #3 『RESTful API』
by
Naoki Yoshitake
WordPressAPI
by
Yuki Okamoto
WordPress APIで作るモバイルアプリ
by
アシアル株式会社
マッシュアップ勉強会
by
guestadcb01
マッシュアップ勉強会
by
seiryo
Web Standards 2018
by
Shogo Sensui
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
by
Kazuya Sugimoto
Api
by
Jun Chiba
Api設計
by
Yuto Suzuki
RESTful Meetup vol.3 Introduction
by
Toru Kawamura
Web API を気軽に使えるツールやサービスのご紹介
by
CData Software Japan
HTML5&API総まくり
by
Shumpei Shiraishi
CloudSpiral 2014年度 Webアプリ講義(1日目)
by
Shin Matsumoto
Cockatoo
by
Hiroaki Kubota
Albatross
by
Hiroaki Kubota
20080327 ku-librarians勉強会 #98:データベースからデータだけをいただく方法(web api入門)
by
kulibrarians
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
by
Toru Kawamura
More from API Meetup
PDF
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
by
API Meetup
PDF
次世代バンキングシステムを活用した「みんなのBaaS」
by
API Meetup
PDF
保険業界DXに明るい兆しを 〜 課題から考察する保険API 〜
by
API Meetup
PDF
Ai inside api meetup 20200929
by
API Meetup
PDF
TOEIC960点レベルのニューラル機械翻訳サービス Mirai Translatorとは!?
by
API Meetup
PDF
〜天気予報 API を活かしてビジネスを成功へ〜 ウェザーテック(WxTech)サービスの紹介
by
API Meetup
PDF
Google Cloud API を活用して簡単に機能追加する
by
API Meetup
PDF
「駅すぱあとWebサービス」ビジネスの変遷 〜変わるものと変わらないもの〜
by
API Meetup
PDF
運用型広告におけるAPIの活用について 〜APIとビジネスモデル〜
by
API Meetup
PDF
AIoTプラットフォーム Web APIサービス
by
API Meetup
PDF
APIbank(メディア)からみた国産APIの現実と未来にむけて
by
API Meetup
PPTX
公共インフラはAPI化できるか
by
API Meetup
PDF
Shopify GraphQL API
by
API Meetup
PDF
Shopify
by
API Meetup
PDF
APIを活用したANA版Society5.0への挑戦
by
API Meetup
PPTX
モビリティサービスの未来 〜 APIで目指す世界 〜
by
API Meetup
PDF
みんなの自動翻訳@ TexTraのご紹介
by
API Meetup
PDF
NHK Linked Data API 〜つながる番組データを目指して〜
by
API Meetup
PPTX
APIで広がる名刺情報の2次活用 〜事例編〜
by
API Meetup
PDF
APIで次のFinTechサービスをつくろう! 〜freee Dev Communityのご紹介〜
by
API Meetup
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
by
API Meetup
次世代バンキングシステムを活用した「みんなのBaaS」
by
API Meetup
保険業界DXに明るい兆しを 〜 課題から考察する保険API 〜
by
API Meetup
Ai inside api meetup 20200929
by
API Meetup
TOEIC960点レベルのニューラル機械翻訳サービス Mirai Translatorとは!?
by
API Meetup
〜天気予報 API を活かしてビジネスを成功へ〜 ウェザーテック(WxTech)サービスの紹介
by
API Meetup
Google Cloud API を活用して簡単に機能追加する
by
API Meetup
「駅すぱあとWebサービス」ビジネスの変遷 〜変わるものと変わらないもの〜
by
API Meetup
運用型広告におけるAPIの活用について 〜APIとビジネスモデル〜
by
API Meetup
AIoTプラットフォーム Web APIサービス
by
API Meetup
APIbank(メディア)からみた国産APIの現実と未来にむけて
by
API Meetup
公共インフラはAPI化できるか
by
API Meetup
Shopify GraphQL API
by
API Meetup
Shopify
by
API Meetup
APIを活用したANA版Society5.0への挑戦
by
API Meetup
モビリティサービスの未来 〜 APIで目指す世界 〜
by
API Meetup
みんなの自動翻訳@ TexTraのご紹介
by
API Meetup
NHK Linked Data API 〜つながる番組データを目指して〜
by
API Meetup
APIで広がる名刺情報の2次活用 〜事例編〜
by
API Meetup
APIで次のFinTechサービスをつくろう! 〜freee Dev Communityのご紹介〜
by
API Meetup
Web API: The Good Parts 落穂ひろい
1.
Web API: The
Good Parts 落穂ひろい 水野貴明 @mizuno_takaaki
2.
本日のお話 • APIリクエストの回数を減らす • 非同期API •
SSKDs向けAPIとAPIバレ • クライアントサイドとサーバサイドの役割分担
3.
まずはじめに一言
4.
まずはじめに一言 誤字脱字が多くて大変申し訳ありません
5.
なぜ表紙は蛇なのか Python関係のホント間違える人多数 息子が有毒性物を調べるのにハマっており、有 毒性物をリクエストしたらこうなった
6.
本書を書くにあたって • コードを載せない – コードを載せると分厚くなるし、特定の言語に寄って しまう –
コードを載せるとAPIそのものの設計とは違うところに 目が言ってしまう危険性がある • 言葉の細かい定義よりも使いやすさを – RESTとはなにか、など • 決定的な選択肢がない場合でも、自分なりの意 見を述べる – The Good Partsシリーズを名乗る上での挟持
7.
本書で一番お伝えしたいこと 使いやすいAPIを 設計しよう
8.
使いやすいとは • 意味がわかりやすい • 一貫性がある •
標準(デファクト・スタンダード含む)にそって いる(ので類推がきく) • クライアントが処理しやすい • テストがしやすい • ドキュメントがわかりやすい
9.
使いやすいとは • RESUfulであることではない • 自由度が高いことではない
10.
APIリクエストの回数を減らす
11.
APIはDBのインターフェイスではない • users、items、photos、players …
それぞれの データを別々のエンドポイントに取得しに行く のは大変 • モバイル・アプリ向けAPIは「1スクリーン、1 APIコール、1 セーブ、1 APIコール」 – http://wazanova.jp/items/1283 • クライアントが使いやすい、コール数が少なく てすむデータ形式にすべき
12.
チャンクでのAPI呼び出し • 複数の処理をまとめて1回で呼び出す • 結果もまとめて1回で返る クライアント
サーバ リクエス トC リクエス トB リクエス トA レスポ ンスC レスポ ンスB レスポ ンスA
13.
複数のIDを一度に取得 • https://api.example.com/v1/users/100,101 • https://api.example.com/v1/users?id=100,101 •
https://api.example.com/v1/users?id[]=100&i d[]=101
14.
非同期なAPI
15.
非同期なAPIとは • リクエスト時に直ぐに結果が返らず、クライア ントのリクエストした処理が完了するのにはそ の後しばらく時間がかかる • Job
Queueシステムへのインターフェイス • コールされてから結果を返すまでの処理が重 いケースに用いられる – 課金処理 – データ集計処理
16.
非同期APIならではの設計ポイント • どうやって処理の完了を知り、結果を取得す るか • クライアントからのリクエストと処理の結果を どうやってひもづけるか
17.
Push型 • 例: PayPalのAPI
( Mass Payなど ) • リクエストの際にはパラメータのチェックなど 最低限なもののみを行い、支払いができたか どうかにかかわらずOKを返す ( OK = 受付完 了 ) • 予めクライアントが登録しておいたURIに IPN(Instant Payment Notification)なるPOSTリ クエストが飛んでくる • そこで初めて成功失敗がわかる
18.
Pull型 • FacebookのAds APIのレポート •
アクセスするとIDが取れる • そのIDを使って結果取得用のエンドポイント を叩く • 処理が完了していたら結果が返る
19.
PushとPull • Pull型のほうがシンプルで実装が容易 – Pushだとアクセスに失敗した時のリトライ処理を サーバサイドでも用意しなくてはならない –
Push型だとクライアントサイドのテストがやりづら い • PayPalはテストIPN送信ページを用意 – ところがすべてのIPNタイプに対応していない…
20.
APIは隠してもバレる
21.
APIは隠してもバレる • 自分たちのウェブサイト/アプリのためにAPIを 作りたい • 一般には公開しない •
でもサービスがメジャーになると、簡単にバレ て解析される
22.
例.1 Vine
23.
例2. AirBnB
24.
APIは隠してもバレる • したがって一般公開しないAPI (
いわゆる SSKDs 向け API) でもネット上に公開している 場合はセキュリティなどの問題はきちんと気 をつける
25.
ちょっと違った事例 Twitter公式クライアントのコンシューマキー • Twitterの公式クライアント(iPhoneやAndroid など)のコンシューマーキーを解析して公開し た人がいた • このコンシューマーキーでアクセスすると、 Rate
Limitが若干ゆるかった • フリーミアムやユーザーの支払額に寄ってリ ミットの量を変更している場合はこうしたリス クもありうることを念頭に置く
26.
WEB APIと SDK あるいは担当をどこで分けるか問題
27.
Web APIとSDK あるいは担当をどこで分けるか問題 サーバ クライアントネット ワーク
28.
Web APIとSDK あるいは担当をどこで分けるか問題 • 最もよくある形 サーバ
クライアントネット ワーク 開発者A 開発者B
29.
Web APIとSDK あるいは担当をどこで分けるか問題 • SDK サーバ
クライアントネット ワーク 開発者A 開発者B SDK
30.
Web APIとSDK あるいは担当をどこで分けるか問題 • オーケストレーション層 サーバ
クライアントネット ワーク 開発者A 開発者B オーケス トレー ション層 内部ネットワーク
31.
Web APIとSDK あるいは担当をどこで分けるか問題 • APIアクセスを最適化する上でAPIのコール回 数を減らすのは重要 •
ネットワークを境界にするとコールを減らす最 適化が行われづらい気がする • Web APIをこう叩いて欲しい、こう叩きたいと いう思想を一致させるためにはネットワーク の両側を同じ開発者が担当するのもひとつの 解
Download