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
130
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
86
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
Go for PHP devs
fetzi
3
120
Other Decks in Programming
See All in Programming
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
460
atmaCup #23でAIコーディングを活用した話
ml_bear
4
720
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
510
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
190
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
0
210
Oxlint JS plugins
kazupon
1
1.2k
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
190
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
160
AIプロダクト時代のQAエンジニアに求められること
imtnd
1
610
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.1k
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
300
Featured
See All Featured
Designing for Performance
lara
611
70k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
150
30 Presentation Tips
portentint
PRO
1
250
Raft: Consensus for Rubyists
vanstee
141
7.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Leo the Paperboy
mayatellez
4
1.5k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
660
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
130
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