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
Battle tested API design - Laracon EU Online
Search
Johannes Pichler
May 20, 2020
Programming
0
85
Battle tested API design - Laracon EU Online
Johannes Pichler
May 20, 2020
Tweet
Share
More Decks by Johannes Pichler
See All by Johannes Pichler
Crafting Elegant APIs with Laravel
fetzi
0
2
Crafting Elegant APIs with Laravel
fetzi
0
130
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
87
Battle tested API design
fetzi
0
93
Mastering CLIs
fetzi
0
51
(Understanding) OAuth2
fetzi
0
230
Decouple Everything
fetzi
0
210
Go Basics Workshop
fetzi
1
81
Getting more out of Git (german)
fetzi
0
74
Other Decks in Programming
See All in Programming
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
210
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
540
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
200
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
130
Docコメントで始める簡単ガードレール
keisukeikeda
1
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
490
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
120
ロボットのための工場に灯りは要らない
watany
10
2.7k
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
930
文字コードの話
qnighy
44
17k
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
190
TipKitTips
ktcryomm
0
160
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
480
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
110
Un-Boring Meetings
codingconduct
0
220
ラッコキーワード サービス紹介資料
rakko
1
2.6M
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
How to train your dragon (web standard)
notwaldorf
97
6.6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Transcript
Ba#le tested API design Laracon EU Online 2020
Johannes Pichler • Web Developer since 2006 • PHP, .NET,
Java • working @ karriere.at
Agenda • API design • Implemen/ng an API in Laravel
None
API Design
Steps for building your API Design • Requirements & Planning
• Implementa4on • Verifica4on & Maintenance
Requirements & Planning
Consider the client(s)
Rou$ng • based on resources • use standard HTTP methods
• be as explicit as possible
Rou$ng GET: /todos GET: /todos/{id} POST: /todos PUT: /todos/{id} DELETE:
/todos/{id}
Rou$ng - API Versioning • frequency of endpoint changes •
handling of breaking changes • use seman8c versioning • use only major version in URLs
Response format • no custom response format • use a
defined standard • JSON:API • HAL
Authoriza*on • use specific client tokens • add access tokens
for sensi3ve endpoints
API Specifica,on • use an API client like Stoplight Studio
or Postman • define your endpoints with edge cases • make your specifica;on testable
Implemen'ng an API in Laravel
Verifica(on & Maintenance
Verifica(on • it's all about metrics • have useful error
logging in place • verify your assump7ons during development
Maintenance • be careful with breaking changes • s3ck to
seman3c versioning • keep your API specifica3on up to date
Summary
Resources • h#ps:/ /github.com/fetzi/laracon-api-design • h#ps:/ /jsonapi.org/
THANKS @fetzi_io