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
Web API 完全に理解した 〜黎明編〜
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
unsoluble_sugar
January 30, 2020
Programming
7.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Web API 完全に理解した 〜黎明編〜
「完全に理解した人達の「Web技術」Talk #1」の発表スライドです。
https://easy2.connpass.com/event/161840/
unsoluble_sugar
January 30, 2020
More Decks by unsoluble_sugar
See All by unsoluble_sugar
uLoopMCP × Claude Code, Trying AI-Driven Unity Game Development
unsoluble_sugar
0
46
Claude Code 超入門 バイブコーディングでつくる自分用ニュースまとめ
unsoluble_sugar
0
48
ゆるいエンジニアリングコミュニティはいいぞ
unsoluble_sugar
0
140
Godot Engineについて調べてみた
unsoluble_sugar
0
950
ドキュメント翻訳から始めるOSS推し活
unsoluble_sugar
0
2.9k
VC ClientでRVC完全に理解した / rvc-with-vcclient-completely-understood
unsoluble_sugar
0
2.4k
VCCでVRChatにVRMアバターをアップロードする方法完全に理解した
unsoluble_sugar
0
720
技術選定完全に理解した
unsoluble_sugar
0
620
「未経験からエンジニア」でやり抜いた時の昔話
unsoluble_sugar
0
2.9k
Other Decks in Programming
See All in Programming
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
640
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.7k
dRuby over BLE
makicamel
2
400
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
8.4k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
200
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7.2k
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
1
160
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
Oxcを導入して開発体験が向上した話
yug1224
4
370
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
380
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
WCS-LA-2024
lcolladotor
0
670
The SEO Collaboration Effect
kristinabergwall1
1
500
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
650
Navigating Team Friction
lara
192
16k
Thoughts on Productivity
jonyablonski
76
5.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
270
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Transcript
Web API શʹཧղͨ͠ ʙᴈ໌ฤʙ
@unsoluble_sugar TOPGATE, Inc. Leader/Engineer
Web API શʹཧղͯ͠·͔͢ʁ
ฉ͍ͨ͜ͱ͋Δ શʹཧղͨ͠ ԿΘ͔Βͳ͍ νϣοτσΩϧ
ฉ͍ͨ͜ͱ͋Δ શʹཧղͨ͠ ԿΘ͔Βͳ͍ νϣοτσΩϧ
֓ཁ • ର ฉ͍ͨ͜ͱ͋Δਓ • શʹཧղͨ͠ঢ়ଶʹͳΔͨΊͷೖฤ • ࡉ͔͍આ໌ল͖·͢ • ෆ෦ॻ੶WebͷใͰิͯ͠Ͷ
Web APIͱʁ
Web APIͱ • APIͱʮApplication Programming Interfaceʯͷུ • ֎෦͔ΒػೳΛར༻͢ΔͨΊͷΈ • HTTPϓϩτίϧΛ༻͍ͯɺωοτϫʔΫӽ͠ʹػೳΛݺͼग़͢
APIͷ͜ͱΛʮWeb APIʯͱݺͿ
ͲΜͳαʔϏεͰΘΕͯΔͷʁ
Web API͕ΘΕ͍ͯΔαʔϏε • GoogleɺAmazonɺTwitterɺFacebookɺetc… • ੈͷதʹWeb APIΛલఏͱͨ͠αʔϏε͕ᷓΕ͍ͯΔ χϡʔεɺఱؾɺਤɺSNSɺγϣοϐϯάɺήʔϜɺΤϯλϝͳͲͳͲ • αʔό௨৴Λߦ͏εϚϗΞϓϦͰར༻
• ެ։/ඇެ։ͷWeb API͕ଘࡏ
۩ମతʹʁ
Twitter APIͷ߹ • TwitterWeb APIΛఏڙ͍ͯ͠Δ • ։ൃऀWeb APIΛར༻ͯ͠Twitterͷ༷ʑͳػೳ͕͑Δ • ଟ͘ͷαʔυύʔςΟΫϥΠΞϯτ͕։ൃ͞Εൃల
• ࠷ۙ༻੍ݶ͕ݫ͍͠…
APIϦϑΝϨϯε https://developer.twitter.com/en/docs/api-reference-index
༷ৄࡉ͕ެ։͞Ε͍ͯΔ ։ൃऀAPIΛͬͯಠࣗͷΞϓϦWebαʔϏεΛ࡞Δ͜ͱ͕Ͱ͖Δ
࣮ࡍͷAPIͷಈ͖ʁ
ϢʔβʔλΠϜϥΠϯऔಘ HTTPϝιου GET Ϩεϙϯεܗࣜ JSON υϝΠϯ https://api.twitter.com ΤϯυϙΠϯτ /1.1/statuses/user_timeline.json ύϥϝʔλ
screen_name, count, include_rts, etc… ೝূ Bearer Token
APIϦΫΤετΛ͛Δͱ… $ curl "https://api.twitter.com/1.1/statuses/user_timeline.json? screen_name=unsoluble_sugar&count=10" -H "Authorization: Bearer <ACCESS_TOKEN>" |
jqɹ
λΠϜϥΠϯͷใ͕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", …
ϨεϙϯεσʔλΛղੳͯ͠ը໘ʹө • πΠʔτใ 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
༷ʑͳใ͕APIͰऔಘͰ͖Δ • ϗʔϜλΠϜϥΠϯͷऔಘ GET statuses/home_timeline • ݸผπΠʔτͷऔಘ GET statuses/show/:id •
Ϧετͷऔಘ GET lists/list • ϑΥϩϫʔใҰཡͷऔಘ GET followers/list
GETҎ֎σʔλͷੜɺߋ৽ɺআ • πΠʔτͷߘ POST statuses/update • ը૾ͷΞοϓϩʔυ POST media/upload •
DMͷআ DELETE direct_messages/events/destroy • DMͷΣϧΧϜϝοηʔδมߋʢ͜Μͳػೳ͋ͬͨΜ͔…ʣ PUT direct_messages/welcome_messages/update
TwitterWeb APIͰग़དྷ͍ͯΔ
Web API
શʹཧղͨ͠ʁ
• HTTPϔομʔɺϘσΟʢϦΫΤετɾϨεϙϯεʣ • HTTPϝιου • ΤϯυϙΠϯτ • ΫΤϦετϦϯάʢURLύϥϝʔλʔʣ • URLΤϯίʔσΟϯά
• ϑΟϧλɺιʔτɺݕࡧɺϖʔδωʔγϣϯ • ೝূɺೝՄʢBasic, OAuth2, OpenID Connectʣ • ηογϣϯཧ • σʔλܕ • ग़ྗܗࣜʢJSON, XML, HTMLʣ • ΤϥʔϋϯυϦϯά • εςʔλείʔυʢ200, 404, 502ʣ • APIαʔόɺWebαʔό • όʔδϣϯཧ • ઃܭʢRESTfulʣ • ηΩϡϦςΟ
None
ࢀߟॻ੶ • WebΛࢧ͑Δٕज़ ᴷ HTTPɺURIɺHTMLɺͦͯ͠REST ࢁຊཅฏɹஶʢWEB+DB PRESS plusʣ 20104݄ ൃߦ
• Web API: The Good Parts ਫ و໌ɹஶʢΦϥΠϦʔδϟύϯʣ 201411݄ ൃߦ
Α͏ͦ͜ Web API ͷੈք