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
77
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
100
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
71
Battle tested API design
fetzi
0
85
Mastering CLIs
fetzi
0
44
(Understanding) OAuth2
fetzi
0
220
Decouple Everything
fetzi
0
200
Go Basics Workshop
fetzi
1
64
Getting more out of Git (german)
fetzi
0
62
Go for PHP devs
fetzi
3
100
Other Decks in Programming
See All in Programming
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
760
Create a website using Spatial Web
akkeylab
0
270
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
190
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
110
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
210
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
120
セキュリティマネジャー廃止とクラウドネイティブ型サンドボックス活用
kazumura
1
170
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
920
Parallel::Pipesの紹介
skaji
2
910
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
590
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
53
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
The Pragmatic Product Professional
lauravandoore
35
6.7k
GraphQLとの向き合い方2022年版
quramy
46
14k
Unsuck your backbone
ammeep
671
58k
Six Lessons from altMBA
skipperchong
28
3.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
The Cult of Friendly URLs
andyhume
79
6.4k
Facilitating Awesome Meetings
lara
54
6.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Git: the NoSQL Database
bkeepers
PRO
430
65k
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