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
70
Battle tested API design - Laracon EU Online
Johannes Pichler
May 20, 2020
Tweet
Share
More Decks by Johannes Pichler
See All by Johannes Pichler
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
33
Battle tested API design
fetzi
0
74
Mastering CLIs
fetzi
0
31
(Understanding) OAuth2
fetzi
0
200
Decouple Everything
fetzi
0
190
Go Basics Workshop
fetzi
1
57
Getting more out of Git (german)
fetzi
0
54
Go for PHP devs
fetzi
3
81
Refactoring to Collections
fetzi
0
190
Other Decks in Programming
See All in Programming
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.4k
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
650
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
960
Goのエラースタックトレースの歴史と今後
sonatard
9
1.5k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
230
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
1
180
Java 22 Overview
kishida
1
180
ゆるい個人開発のススメ
kuroppe1819
10
990
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Git Rebase
bkuhlmann
11
1.6k
Featured
See All Featured
Building Your Own Lightsaber
phodgson
99
5.7k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Bash Introduction
62gerente
604
210k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Unsuck your backbone
ammeep
663
57k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
Testing 201, or: Great Expectations
jmmastey
28
6.4k
Visualization
eitanlees
136
14k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Into the Great Unknown - MozCon
thekraken
10
990
The World Runs on Bad Software
bkeepers
PRO
61
6.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