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
76
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
94
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
69
Battle tested API design
fetzi
0
80
Mastering CLIs
fetzi
0
43
(Understanding) OAuth2
fetzi
0
210
Decouple Everything
fetzi
0
200
Go Basics Workshop
fetzi
1
63
Getting more out of Git (german)
fetzi
0
61
Go for PHP devs
fetzi
3
100
Other Decks in Programming
See All in Programming
個人開発の学生アプリが企業譲渡されるまで
akidon0000
2
1.2k
2ヶ月で生産性2倍、お買い物アプリ「カウシェ」4チーム同時改善の取り組み
ike002jp
1
110
一緒に働きたくなるプログラマの思想 #QiitaConference
mu_zaru
80
20k
The Implementations of Advanced LR Parser Algorithm
junk0612
2
1.4k
Ruby で作る RISC-V CPU エミュレーター / RISC-V CPU emulator made with Ruby
hayaokimura
4
370
파급효과: From AI to Android Development
l2hyunwoo
0
160
flutter_kaigi_mini_4.pdf
nobu74658
0
140
エンジニアが挑む、限界までの越境
nealle
1
320
Global Azure 2025 @ Kansai / Hyperlight
kosmosebi
0
110
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
130
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
7
1.4k
複雑なフォームの jotai 設計 / Designing jotai(state) for Complex Forms #layerx_frontend
izumin5210
6
1.5k
Featured
See All Featured
Facilitating Awesome Meetings
lara
54
6.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
560
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Navigating Team Friction
lara
185
15k
A designer walks into a library…
pauljervisheath
205
24k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Code Reviewing Like a Champion
maltzj
523
40k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Designing for humans not robots
tammielis
253
25k
Why Our Code Smells
bkeepers
PRO
336
57k
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