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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Johannes Pichler
May 20, 2020
Programming
89
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
22
Crafting Elegant APIs with Laravel
fetzi
0
150
Battle tested API Design - Laravel Edition (PHP.RUHR)
fetzi
0
92
Battle tested API design
fetzi
0
98
Mastering CLIs
fetzi
0
60
(Understanding) OAuth2
fetzi
0
240
Decouple Everything
fetzi
0
220
Go Basics Workshop
fetzi
1
83
Getting more out of Git (german)
fetzi
0
76
Other Decks in Programming
See All in Programming
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1k
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
240
GitHub Copilot CLIのいいところ
htkym
2
1k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
130
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
5
620
今さら聞けないCancellationToken
htkym
0
180
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
180
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
580
AIエージェントの隔離技術の徹底比較
kawayu
0
430
デフォルト運用のCodeRabbit、1年で何が変わったか / How CodeRabbit Changed Our Code Review in 1 Year
bake0937
1
100
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.6k
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2.4k
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
We Are The Robots
honzajavorek
0
230
Site-Speed That Sticks
csswizardry
13
1.2k
30 Presentation Tips
portentint
PRO
1
300
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Bash Introduction
62gerente
615
210k
My Coaching Mixtape
mlcsv
0
130
Chasing Engaging Ingredients in Design
codingconduct
0
200
Information Architects: The Missing Link in Design Systems
soysaucechin
0
940
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
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