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
Rapid REST API Development with Symfony
Search
Pawel Jedrzejewski
October 31, 2015
Technology
2
590
Rapid REST API Development with Symfony
Combining multiple tools from Symfony community to create a REST API in minutes.
Pawel Jedrzejewski
October 31, 2015
Tweet
Share
More Decks by Pawel Jedrzejewski
See All by Pawel Jedrzejewski
5 Years with Symfony
pjedrzejewski
0
310
Sylius - Decoupled eCommerce Platform
pjedrzejewski
0
330
You Should Be An Open Source Developer
pjedrzejewski
2
430
Monetyzacja oprogramowania Open Source
pjedrzejewski
0
140
Sylius - E-Commerce for Symfony2
pjedrzejewski
2
1.3k
Pierwsze kroki z Sylius E-Commerce
pjedrzejewski
0
1.4k
Sylius - E-Commerce for Symfony Developers
pjedrzejewski
4
680
Getting started with Sylius
pjedrzejewski
0
260
BDD in Open Source
pjedrzejewski
3
310
Other Decks in Technology
See All in Technology
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
3
2.2k
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
280
Cracking the KubeCon CfP
inductor
2
270
生産性向上チームの紹介
cybozuinsideout
PRO
1
910
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
150
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
35k
EM完全に理解した と思ったけど、 やっぱり何も分からなかった話 / EM Night Fukuoka #1
hirutas
0
280
Max out Local LLM in Challenging Environments
sashimimochi
1
100
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
720
コードファーストの考え方。 Amplify Gen2から学ぶAWS次世代のWeb開発体験
yoshiitaka
1
310
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
4
880
【基本】データベース設計
oracle4engineer
PRO
2
160
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Typedesign – Prime Four
hannesfritz
36
2.1k
Infographics Made Easy
chrislema
238
18k
How GitHub (no longer) Works
holman
305
140k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
GitHub's CSS Performance
jonrohan
1025
450k
We Have a Design System, Now What?
morganepeng
44
6.8k
The Invisible Side of Design
smashingmag
294
49k
YesSQL, Process and Tooling at Scale
rocio
165
13k
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!