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
Everything I've Learned About APIs But Been Too...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Michael Price
June 27, 2024
Programming
59
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Everything I've Learned About APIs But Been Too Afraid To Talk About... Until Now
Slide deck from the talk on APIs I gave at Laravel Live UK 2024.
Michael Price
June 27, 2024
Other Decks in Programming
See All in Programming
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
2
980
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
500
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
240
New "Type" system on PicoRuby
pocke
1
820
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
250
JavaDoc 再入門
nagise
0
320
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
RTSPクライアントを自作してみた話
simotin13
0
560
Vite+ Unified Toolchain for the Web
naokihaba
0
250
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
240
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.2k
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
120
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
エンジニアに許された特別な時間の終わり
watany
107
250k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
280
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Why Our Code Smells
bkeepers
PRO
340
58k
The Cult of Friendly URLs
andyhume
79
6.9k
Believing is Seeing
oripsolob
1
140
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
Michael Price Lead Developer, Aero Commerce
👋
Michael Price Lead Developer, Aero Commerce Integration Specialist 20+ Years
Experience 👤
Father of two Volunteer at Darlington Football Club Webmaster and
Commentator 👤
(NENDEST) NARKOOTIKUMIDEST EI TEA ME (KÜLL) MIDAGI 5MIINUST x PUULUUP
EVERYTHING I’VE LEARNED ABOUT APIS BUT BEEN TOO AFRAID TO
TALK ABOUT …UNTIL NOW.
WHAT’S THIS TALK ABOUT? • WHAT APIS ARE USED FOR
• WHAT TO DO - AND WHAT NOT TO DO • …WHETHER CREATING OR CONSUMING • BEST PRACTICES • TIPS AND TRICKS
WHAT IS AN API?
WHAT IS AN API? • APPLICATION PROGRAMMING INTERFACE • A
WAY FOR TWO APPLICATIONS TO “TALK” TO EACH OTHER • AN “APPLICATION” CAN BE SOFTWARE, SUCH AS A WEBSITE, OR MOBILE APP… • …OR HARDWARE SUCH AS A CARD TERMINAL OR SMART SPEAKER
WHAT IS AN API? • APIS EXPOSE ENDPOINTS • YOUR
APPLICATION CALLS THESE ENDPOINTS TO GET, CREATE OR UPDATE DATA
• GEOLOCATION • SEARCH • MAPS • PLACES • DIRECTIONS
GOOGLE MAPS
• LEAGUE TABLES • DIRECT DEBITS • PAYPAL • TICKETING
• CUSTOM DARLINGTON FC
• PAYMENTS • EPOS • STOCK CONTROL • ANALYTICS •
CRM AERO
• PLAYLISTS • ARTISTS • ALBUMS • TRACKS SPOTIFY
COMMON API TYPES • SOAP • SIMPLE OBJECT ACCESS PROTOCOL
• XML ONLY
COMMON API TYPES • REST • REPRESENTATIONAL STATE TRANSFER •
FLEXIBLE PAYLOADS (JSON, XML, PLAIN TEXT ETC.)
COMMON API TYPES • GRAPHQL • ORIGINALLY DEVELOPED AT FACEBOOK
• JSON ONLY
AUTHENTICATION
AUTHENTICATION • HTTP BASIC • API KEY • OAUTH •
JWT
USE THE RIGHT REQUEST METHOD
USE THE RIGHT REQUEST METHOD - retrieve a list of
resources - retrieve a speci fi c resource - create a new resource - replace a resource - update a resource - delete a resource
USE THE RIGHT HEADERS
USE THE RIGHT HEADERS • Accept AND Content-Type • USEFUL
IF AN API CAN OUTPUT MULTIPLE CONTENT TYPES
USE THE RIGHT STATUS CODES
USE THE RIGHT STATUS CODES • 200 OK • 201
Created • 202 Accepted • 204 No Content 2xx - THE GOOD ONES
USE THE RIGHT STATUS CODES • 301 Permanent Redirect •
302 Temporary Redirect • 304 Not Modified • 307 Permanent Redirect • 308 Temporary Redirect 3xx - THE INFORMATIONAL ONES
USE THE RIGHT STATUS CODES • 400 Bad Request •
401 Unauthorised • 403 Forbidden • 404 Not Found 4xx - THE CLIENT ERRORS
USE THE RIGHT STATUS CODES • 405 Method Not Allowed
• 429 Too Many Requests • 418 I’m a teapot 4xx - THE CLIENT ERRORS
USE THE RIGHT STATUS CODES • 500 Internal Server Error
• 502 Bad Gateway • 503 Service Unavailable • 504 Gateway Timeout 5xx - THE SERVER ERRORS
USE THE RIGHT STATUS CODES
USE THE RIGHT STATUS CODES
RETURNING CONTENT
RETURNING CONTENT
RESPECT RATE LIMITS
RESPECT RATE LIMITS IF YOU GET THIS… …TRY AND DO
THIS
DOCUMENTATION
DOCUMENTATION • BE THOROUGH • INCLUDE EXAMPLE PAYLOADS • INCLUDE
EXAMPLE RESPONSES • USE THE OPENAPI SPEC • CONSIDER PROVIDING AN SDK • …AND A SANDBOX / PLAYGROUND
DOCUMENTATION SWAGGER / OPENAPI Source: swagger.io
DOCUMENTATION REDOC Source: redocly.com
DOCUMENTATION STOPLIGHT Source: stoplight.io
DOCUMENTATION SLATE Source: github.com/slatedocs/slate
TESTING TOOLS
TESTING TOOLS POSTMAN Source: postman.com
TESTING TOOLS RAPIDAPI
TESTING TOOLS INSOMNIA Source: insomnia.rest
TESTING TOOLS HURL Source: hurl.dev
X: @mikkyx82 LinkedIn
[email protected]
🙂
Q+A