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.3k
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
55
Claude Code 超入門 バイブコーディングでつくる自分用ニュースまとめ
unsoluble_sugar
0
57
ゆるいエンジニアリングコミュニティはいいぞ
unsoluble_sugar
0
150
Godot Engineについて調べてみた
unsoluble_sugar
0
990
ドキュメント翻訳から始めるOSS推し活
unsoluble_sugar
0
3k
VC ClientでRVC完全に理解した / rvc-with-vcclient-completely-understood
unsoluble_sugar
0
2.5k
VCCでVRChatにVRMアバターをアップロードする方法完全に理解した
unsoluble_sugar
0
760
技術選定完全に理解した
unsoluble_sugar
0
640
「未経験からエンジニア」でやり抜いた時の昔話
unsoluble_sugar
0
2.9k
Other Decks in Programming
See All in Programming
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
120
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
350
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
0
160
リアルな遅延を測る仕様
kota_yata
1
140
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
200
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.7k
Foundry Localでエージェント開発
seosoft
0
120
自分的「カンファレンスの楽しみ方」
syumai
0
190
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
340
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
290
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
The agentic SEO stack - context over prompts
schlessera
0
890
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
How to make the Groovebox
asonas
2
2.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Making the Leap to Tech Lead
cromwellryan
135
10k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
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 ͷੈք