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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Johannes Pichler
May 20, 2020
Programming
87
0
Share
Battle tested API design - Laracon EU Online
Johannes Pichler
May 20, 2020
More Decks by Johannes Pichler
See All by Johannes Pichler
Crafting Elegant APIs with Laravel
fetzi
0
11
Crafting Elegant APIs with Laravel
fetzi
0
140
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
90
Battle tested API design
fetzi
0
97
Mastering CLIs
fetzi
0
53
(Understanding) OAuth2
fetzi
0
240
Decouple Everything
fetzi
0
210
Go Basics Workshop
fetzi
1
83
Getting more out of Git (german)
fetzi
0
76
Other Decks in Programming
See All in Programming
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
350
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
0
150
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
820
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
140
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
23
13k
Swift Concurrency Type System
inamiy
0
530
実用!Hono RPC2026
yodaka
2
230
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
550
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
500
第3木曜LT会 #28
tinykitten
PRO
0
110
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
730
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
290
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
420
ラッコキーワード サービス紹介資料
rakko
1
3.1M
The Cult of Friendly URLs
andyhume
79
6.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Skip the Path - Find Your Career Trail
mkilby
1
110
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
270
GitHub's CSS Performance
jonrohan
1032
470k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
100
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