Web API 完全に理解した 〜黎明編〜

2K Views

March 09, 21

スライド概要

「完全に理解した人達の「Web技術」Talk #1」の発表スライドです。
https://easy2.connpass.com/event/161840/

profile-image

Tech Hunter代表。フルオタクエンジニア。 エンジニアリングコミュニティ「Easy Easy」運営。 ガジェオタでアニオタでゲーオタ。 たまにブログ書いてる。2児のパパ。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Web API 完全に理解した 〜黎明編〜

2.

@unsoluble_sugar TOPGATE, Inc. Leader/Engineer

3.

Web API 完全に理解してますか? 😉

4.

🤔 聞いたことある 😁 完全に理解した 😩 何もわからない 😃 チョットデキル

5.

🤔 聞いたことある 😁 完全に理解した 😩 何もわからない 😃 チョットデキル

6.

概要 • 対象は 🤔 聞いたことある人 • 😁 完全に理解した状態になるための入門編 • 細かい説明は省きます • 不足部分は書籍やWebの情報で補完してね😉

7.

Web APIとは? 🤔

8.

Web APIとは • APIとは「Application Programming Interface」の略 • 外部から機能を利用するための仕組み • HTTPプロトコルを用いて、ネットワーク越しに機能を呼び出す APIのことを「Web API」と呼ぶ

9.

どんなサービスで使われてるの? 🤔

10.

Web APIが使われているサービス • Google、Amazon、Twitter、Facebook、etc… • 世の中にはWeb APIを前提としたサービスが溢れている ニュース、天気、地図、SNS、ショッピング、ゲーム、エンタメなどなど • サーバ通信を行うスマホアプリでも利用 • 公開/非公開のWeb APIが存在

11.

具体的には? 🤔

12.

Twitter APIの場合 • TwitterはWeb APIを提供している • 開発者はWeb APIを利用してTwitterの様々な機能が使える • 多くのサードパーティ製クライアントが開発され発展 • 最近は使用制限が厳しい…😢

13.

APIリファレンス https://developer.twitter.com/en/docs/api-reference-index

14.

仕様詳細が公開されている 開発者はAPIを使って独自のアプリやWebサービスを作ることができる

15.

実際のAPIの動きは? 🤔

16.

ユーザータイムライン取得 HTTPメソッド GET レスポンス形式 JSON ドメイン https://api.twitter.com エンドポイント /1.1/statuses/user_timeline.json パラメータ screen_name, count, include_rts, etc… 認証 Bearer Token

17.

APIリクエストを投げると… $ curl "https://api.twitter.com/1.1/statuses/user_timeline.json? screen_name=unsoluble_sugar&count=10" -H "Authorization: Bearer <ACCESS_TOKEN>" | jq

18.
[beta]
タイムラインの情報がJSONで取得できる { "created_at": "Sun Jan 19 12:33:32 +0000 2020", "id": 1218874129316638700, "id_str": "1218874129316638720", "text": "リクエストヘッダーのAuthorizationって、日本語で表現すると「認証方式」とかで良いのかしら", }, "source": "<a href=\"https://about.twitter.com/products/tweetdeck\" rel=\"nofollow\">TweetDeck</a>", "user": { "id": 149069183, "id_str": "149069183", "name": "星影", "screen_name": "unsoluble_sugar", "location": "二次元", "description": "Tech Hunter代表。全文検索/スマホゲーム/チャットbot/IoTとかやってる雑多なエンジニア。最近はPMも兼任。Flutter/GCP/Firebase勉強中。ガジェオタでアニ オタでゲーオタ。累計1000万PVの個人ブログ運営。2児のパパ。本棚:https://t.co/kGyfPuFvIO", "url": "https://t.co/h7Iq47ug5Z", "entities": { "url": { "urls": [ { "url": "https://t.co/h7Iq47ug5Z", "expanded_url": "https://unsolublesugar.com", "display_url": "unsolublesugar.com", …
19.

レスポンスデータを解析して画面に反映 • ツイート情報 text:クソ眠い created_at:Sun Jan 19 12:33:32 +0000 2020 source:TweetDeck • ユーザー情報 user.profile_image_url:http://pbs.twimg.com/profile_images/1109649870594293766/AQHwKd6N_normal.jpg user.name:星影 user.screen_name:unsoluble_sugar

20.

様々な情報がAPIで取得できる • ホームタイムラインの取得 GET statuses/home_timeline • 個別ツイートの取得 GET statuses/show/:id • リストの取得 GET lists/list • フォロワー情報一覧の取得 GET followers/list

21.

GET以外はデータの生成、更新、削除 • ツイートの投稿 POST statuses/update • 画像のアップロード POST media/upload • DMの削除 DELETE direct_messages/events/destroy • DMのウェルカムメッセージ変更(こんな機能あったんか…) PUT direct_messages/welcome_messages/update

22.

TwitterはWeb APIで出来ている

23.

Web API 🤔

24.

完全に理解した? 😁

25.

🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔 • HTTPヘッダー、ボディ(リクエスト・レスポンス) • データ型 • HTTPメソッド • 出力形式(JSON, XML, HTML) • エンドポイント • エラーハンドリング • クエリストリング(URLパラメーター) • ステータスコード(200, 404, 502) • URLエンコーディング • APIサーバ、Webサーバ • フィルタ、ソート、検索、ページネーション • バージョン管理 • 認証、認可(Basic, OAuth2, OpenID Connect) • 設計(RESTful) • セッション管理 • セキュリティ

26.

😩

27.

参考書籍 • Webを支える技術 ─ HTTP、URI、HTML、そしてREST 山本陽平 著(WEB+DB PRESS plus) 2010年4月 発行 • Web API: The Good Parts 水野 貴明 著(オライリージャパン) 2014年11月 発行

28.

ようこそ Web API の世界へ 🤗