Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rapid REST API Development with Symfony
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Pawel Jedrzejewski
October 31, 2015
Technology
630
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rapid REST API Development with Symfony
Combining multiple tools from Symfony community to create a REST API in minutes.
Pawel Jedrzejewski
October 31, 2015
More Decks by Pawel Jedrzejewski
See All by Pawel Jedrzejewski
5 Years with Symfony
pjedrzejewski
0
370
Sylius - Decoupled eCommerce Platform
pjedrzejewski
0
400
You Should Be An Open Source Developer
pjedrzejewski
2
530
Monetyzacja oprogramowania Open Source
pjedrzejewski
0
170
Sylius - E-Commerce for Symfony2
pjedrzejewski
2
1.4k
Pierwsze kroki z Sylius E-Commerce
pjedrzejewski
0
1.5k
Sylius - E-Commerce for Symfony Developers
pjedrzejewski
4
760
Getting started with Sylius
pjedrzejewski
0
300
BDD in Open Source
pjedrzejewski
3
330
Other Decks in Technology
See All in Technology
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
160
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
190
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
3
190
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
140
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
4
2.1k
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
940
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
550
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
690
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
470
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
240
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
350
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
110
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
820
WENDY [Excerpt]
tessaabrams
13
39k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Designing for Timeless Needs
cassininazir
1
470
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to make the Groovebox
asonas
2
2.4k
Docker and Python
trallard
47
4.2k
Transcript
None
Paweł Jędrzejewski I really like Open Source I created Sylius
I co-founded Lakion I help organize PHPers Łódź
@pjedrzejewski What does it mean to be rapid? ?
@pjedrzejewski rapid - [rap-id] - adjec7ve Moving, acGng, or occurring
with great speed.
@pjedrzejewski Every startup needs an MVP.
*Minimum Viable Product
@pjedrzejewski Many of them are unpleasantly surprised with the fact
that they need to maintain it aLer going live.
When you need to do a significant change in your
„prototype”.
None
@pjedrzejewski Time Value delivered This is not rapid.
@pjedrzejewski Time Value delivered This is rapid.
@pjedrzejewski Long-term flexibility over short-term graGficaGon from saGsfying the management
or the investors.
@pjedrzejewski What is an API? ?
@pjedrzejewski ApplicaGon Programming Interface
@pjedrzejewski SoLware-to-SoLware interfaces
Machines talking to machines… You have been warned.
Why do we need APIs? @pjedrzejewski User Your app Amazon
UI API
Why do we need APIs? @pjedrzejewski • Sharing data and
avoiding duplicaGon • Decoupling funcGonality (SRP, SeparaGon of Concerns etc.) • Allowing other people to consume our service
@pjedrzejewski What kind of APIs are out there? ?
@pjedrzejewski GET /createNewChargeV2 CrappyAPI „I\ don\’t\ want\ 2\ do\ this”!UserID:1!250!USD!
[email protected]
# With the following data sent:
@pjedrzejewski POST / HTTP/1.1 Host: xyz.com Content-Type: applicaGon/soap+xml; charset=uo-8 <?xml
version=„1.0” ?> <soap:Envelope …> <m:GetUserDetails> <m:UserID>41</m:UserID> </m:GetUserDetails> </soap:Envelope> SOAP
@pjedrzejewski GET /users/41 HTTP/1.1 Host: xyz.com Accept: applicaGon/json REST
@pjedrzejewski That being said, „REST or SOAP?” is a wrong
quesGon.
@pjedrzejewski REST is not a protocol. It is an architectural
style.
REST API Principles @pjedrzejewski Client-server architecture Stateless Cacheable Based on
standards (HTTP, URL, XML, JSON) Independent from the plaoorm and language
The Richardson Maturity Model @pjedrzejewski Level 0: Swamp of POX
Level 1: Resources Level 2: HTTP Verbs Level 3: Hypermedia Controls
Install LIONFRAME $ composer create-project lakion/lionframe @pjedrzejewski @pjedrzejewski
@pjedrzejewski DEMO
How?
@pjedrzejewski @pjedrzejewski
@pjedrzejewski @pjedrzejewski
Bundles, Bundles, Bundles @pjedrzejewski FOSRestBundle JMSSerializerBundle BazingaHateoasBundle SyliusResourceBundle
@pjedrzejewski It can be plugged into an exisGng Symfony app.
Use case: Sylius E-Commerce API Sylius API Mobile API @pjedrzejewski
User API
Extras! @pjedrzejewski FOSOAuthServerBundle FOSHzpCacheBundle SyliusRbacBundle
lakion.com/lionframe
DOCS.sylius.org - Sylius Resource Bundle
@pjedrzejewski @Sylius @Lakion pjedrzejewski.com sylius.org lakion.com THANK YOU!