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
600
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
340
Sylius - Decoupled eCommerce Platform
pjedrzejewski
0
370
You Should Be An Open Source Developer
pjedrzejewski
2
460
Monetyzacja oprogramowania Open Source
pjedrzejewski
0
150
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
720
Getting started with Sylius
pjedrzejewski
0
280
BDD in Open Source
pjedrzejewski
3
320
Other Decks in Technology
See All in Technology
Dataverseの検索列について
miyakemito
1
140
コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
non97
1
800
SnowflakeとDatabricks両方でRAGを構築してみた
kameitomohiro
1
510
クラウド開発環境Cloud Workstationsの紹介
yunosukey
0
210
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
1
350
Стильный код: натуральный поиск редких атрибутов по картинке. Юлия Антохина, Data Scientist, Lamoda Tech
lamodatech
0
830
ドキュメント管理の理想と現実
kazuhe
1
270
AIとSREで「今」できること
honmarkhunt
3
540
生成AIによるCloud Native基盤構築の可能性と実践的ガードレールの敷設について
nwiizo
7
1.3k
Oracle Cloud Infrastructure:2025年4月度サービス・アップデート
oracle4engineer
PRO
0
210
地味にいろいろあった! 2025春のAmazon Bedrockアップデートおさらい
minorun365
PRO
2
520
Mastraに入門してみた ~AWS CDKを添えて~
tsukuboshi
0
350
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
68
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Designing for humans not robots
tammielis
253
25k
Documentation Writing (for coders)
carmenintech
69
4.7k
Building Applications with DynamoDB
mza
94
6.3k
Agile that works and the tools we love
rasmusluckow
329
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
For a Future-Friendly Web
brad_frost
177
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
Designing Experiences People Love
moore
142
24k
Raft: Consensus for Rubyists
vanstee
137
6.9k
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!
test@example.com# 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!