Pawe Jdrzejewski I really like Open Source I created Sylius I - - PowerPoint PPT Presentation

pawe j drzejewski
SMART_READER_LITE
LIVE PREVIEW

Pawe Jdrzejewski I really like Open Source I created Sylius I - - PowerPoint PPT Presentation

Pawe Jdrzejewski I really like Open Source I created Sylius I co-founded Lakion I help organize PHPers d ? What does it mean to be rapid? @pjedrzejewski rapid - [ rap -id] - adjec7ve Moving, acGng, or occurring with great speed.


slide-1
SLIDE 1
slide-2
SLIDE 2

Paweł Jędrzejewski

I really like Open Source I created Sylius I co-founded Lakion I help organize PHPers Łódź
slide-3
SLIDE 3 @pjedrzejewski

What does it mean to be rapid?

?

slide-4
SLIDE 4 @pjedrzejewski

rapid - [rap-id] - adjec7ve

Moving, acGng, or occurring with great speed.
slide-5
SLIDE 5 @pjedrzejewski

Every startup needs an MVP.

slide-6
SLIDE 6 *Minimum Viable Product
slide-7
SLIDE 7 @pjedrzejewski

Many of them are unpleasantly surprised with the fact that they need to maintain it aLer going live.

slide-8
SLIDE 8 When you need to do a significant change in your „prototype”.
slide-9
SLIDE 9
slide-10
SLIDE 10 @pjedrzejewski Time Value delivered

This is not rapid.

slide-11
SLIDE 11 @pjedrzejewski Time Value delivered

This is rapid.

slide-12
SLIDE 12 @pjedrzejewski

Long-term flexibility over short-term graGficaGon from saGsfying the management or the investors.

slide-13
SLIDE 13 @pjedrzejewski

What is an API?

?

slide-14
SLIDE 14 @pjedrzejewski

ApplicaGon Programming Interface

slide-15
SLIDE 15 @pjedrzejewski

SoLware-to-SoLware interfaces

slide-16
SLIDE 16 Machines talking to machines… You have been warned.
slide-17
SLIDE 17 Why do we need APIs? @pjedrzejewski User Your app Amazon UI API
slide-18
SLIDE 18 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
slide-19
SLIDE 19 @pjedrzejewski

What kind of APIs are

  • ut there?

?

slide-20
SLIDE 20 @pjedrzejewski GET /createNewChargeV2

CrappyAPI

„I\ don\’t\ want\ 2\ do\ this”!UserID:1!250!USD! test@example.com# With the following data sent:
slide-21
SLIDE 21 @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

slide-22
SLIDE 22 @pjedrzejewski GET /users/41 HTTP/1.1 Host: xyz.com Accept: applicaGon/json

REST

slide-23
SLIDE 23 @pjedrzejewski

That being said, „REST

  • r SOAP?” is a wrong

quesGon.

slide-24
SLIDE 24 @pjedrzejewski

REST is not a protocol. It is an architectural style.

slide-25
SLIDE 25 REST API Principles @pjedrzejewski Client-server architecture Stateless Cacheable Based on standards (HTTP, URL, XML, JSON) Independent from the plaoorm and language
slide-26
SLIDE 26 The Richardson Maturity Model @pjedrzejewski Level 0: Swamp of POX Level 1: Resources Level 2: HTTP Verbs Level 3: Hypermedia Controls
slide-27
SLIDE 27

Install LIONFRAME

$ composer create-project lakion/lionframe @pjedrzejewski @pjedrzejewski
slide-28
SLIDE 28 @pjedrzejewski

DEMO

slide-29
SLIDE 29

How?

slide-30
SLIDE 30 @pjedrzejewski @pjedrzejewski
slide-31
SLIDE 31 @pjedrzejewski @pjedrzejewski
slide-32
SLIDE 32 Bundles, Bundles, Bundles @pjedrzejewski FOSRestBundle JMSSerializerBundle BazingaHateoasBundle SyliusResourceBundle
slide-33
SLIDE 33 @pjedrzejewski

It can be plugged into an exisGng Symfony app.

slide-34
SLIDE 34

Use case: Sylius E-Commerce API

Sylius API Mobile API @pjedrzejewski User API
slide-35
SLIDE 35 Extras! @pjedrzejewski FOSOAuthServerBundle FOSHzpCacheBundle SyliusRbacBundle
slide-36
SLIDE 36

lakion.com/lionframe

slide-37
SLIDE 37

DOCS.sylius.org - Sylius Resource Bundle

slide-38
SLIDE 38 @pjedrzejewski @Sylius @Lakion pjedrzejewski.com sylius.org lakion.com

THANK YOU!