SlideShare a Scribd company logo
Lionframe
Rapid RESTful API development
powered by
Michał Marcinkowski
Współzałożyciel LAKION
Miłośnik Symfony2 i Open Source
?Co to jest API
Application
Programming
Interface
User Interface
User Interface
Software-to-software
Interface
Amazon Client
My website Client
API
UI
UI
wykorzystanie API
• Współdzielenie treści i danych pomiędzy
aplikacjami/systemami
• Budowanie aplikacji korzystających z serwisu
?Czy każda aplikacja
zależy od jakiegoś API
?Czy każda aplikacja
zależy od jakiegoś API
TAK!
REST
CECHY REST
• Bezstanowość
• Cache
• Jednolitość interfejsów
• Oparte na standardach (HTTP, URL, XML, JSON)
• Niezależność od platformy i języka
• Może być stosowane w obecności firewalli
• Prostota
Prostota REST
POST / HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 300
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/">
<m:GetUserDetails>
<m:UserID>12345</UserID>
</m:GetUserDetails>
</soap:Body>
</soap:Envelope>
GET /users/12345 HTTP/1.1
Host: www.example.org
Accept: application/json
Dojrzałość REST
Richardson Maturity Model
Level 0
THE SWAMP OF POX
• Protokół jako tunel dla 

request-response (zazwyczaj HTTP)
• Jeden entry point URI
• Jeden rodzaj metody (w HTTP,
zazwyczaj metoda POST)
Backend
system
Mobile
application
appointmentService
POST <openSlotRequest
POST <appointmentRequest
Level 0
THE SWAMP OF POX
Level 1
RESOURCES
• Wiele URIs
• Każdy URI inny resource
• Jeden rodzaj metody (POST)
Backend
system
Mobile
application
doctors/jdoe
POST <openSlotRequest
POST <appointmentRequest
slots/1234
Level 1
RESOURCES
Level 2
HTTP VERBS
• Używanie poprawnych metod
• Używanie poprawnych kodów odpowiedzi
Level 2
HTTP VERBS
• GET
• POST
• PUT
• PATCH
• DELETE
HTTP CODES
• 2xx Success
• 200 OK
• 201 Created
• 204 No Content
• 3xx Redirection
• 301 Moved Permanently
• 5xx Server Error
• 500 Internal Server Error
• 503 Service Unavailable
• 4xx Client Error
• 400 Bad Request
• 401 Unauthorized
• 403 Forbidden
• 404 Not Found
• 405 Method Not Allowed
• 409 Conflict
Level 3
Hypermedia controls
• Używanie HATEOAS do odkrywania
możliwości API
DEMO
Time
/**
* @AssertNotBlank()
*/
private $firstName;
VALIDATIOn
SERIALIZACJA
#src/Acme/DemoBundle/Resources/config/serializer/Entity.Player.yml
AcmeDemoBundleEntityPlayer:
exclusion_policy: ALL
xml_root_name: player
properties:
id:
expose: true
type: integer
xml_attribute: true
firstName:
expose: true
type: string
lastName:
expose: true
type: string
HATEOAS
#src/Acme/DemoBundle/Resources/config/serializer/Entity.Player.yml
AcmeDemoBundleEntityPlayer:
exclusion_policy: ALL
xml_root_name: player
properties:
id:
expose: true
type: integer
xml_attribute: true

 firstName:

 
 ….
relations:
- rel: self
href:
route: acme_api_player_show
parameters:
id: expr(object.getId())
Z czego składa się LIONframe
Sylius Resource Bundle
• Domyślny kontroler
• Domyślny routing
• Domyślne repository z paginacją
• Aliasy do serwisów dla managerów, repository,
kontrolerów
• Podstawowe filtrowanie i sortowanie
• Wywołuje zdarzenia (events)
FOS REST BUNDLE
• Wykrywa format po nagłówach HTTP
• Wybiera i zwraca response w porządanym
formacie
• Integruje kontroler z serializerem
JMS Serializer BUNDLE
• Serializuje dane do opowiedniego formatu
• Łatwo konfigurowalny serializer
BaZinga hateoas Bundle
• Dodaje linki relacji
• Obsługuje XML i JSON
• Łatwo konfigurowalne relacje
@micmarcinkowski
@Lakion
lakion.com/lionframe
„Time is money” 
Benjamin Franklin
Image Credits
http://martinfowler.com/articles/
richardsonMaturityModel.html
https://www.flickr.com/photos/kwl/4247555680

More Related Content

PPTX
CP 6 Final
PPT
Reading psychology ncss 2014
PDF
10121-4504-01-RT-Literature_Survey_Background_Studies-08-13-14
PDF
Study on Youth in Akkar
PPTX
Pre Production Process
PDF
Building a Community
PDF
Education Study
PPTX
Media music video analysis 4
CP 6 Final
Reading psychology ncss 2014
10121-4504-01-RT-Literature_Survey_Background_Studies-08-13-14
Study on Youth in Akkar
Pre Production Process
Building a Community
Education Study
Media music video analysis 4

Viewers also liked (9)

PDF
TT 200-BTC-2014 che do ke toan moi va nhung thay doi voi QD 15-2006
PPT
системы счисления
PPTX
A Student Guide to University
PPTX
Sumber Daya Laut by Sandy,rizal,ival and widhi
PPTX
2015 talking point analyze for growth
PPTX
La piràmide de l'escarbat d'or
PPTX
Media a2 music video analysis
PPTX
[#MFGAdvances] Lean Management for WBEs in Construction and Manufacturing
PPTX
Presentation - DALOYOC
TT 200-BTC-2014 che do ke toan moi va nhung thay doi voi QD 15-2006
системы счисления
A Student Guide to University
Sumber Daya Laut by Sandy,rizal,ival and widhi
2015 talking point analyze for growth
La piràmide de l'escarbat d'or
Media a2 music video analysis
[#MFGAdvances] Lean Management for WBEs in Construction and Manufacturing
Presentation - DALOYOC
Ad

Similar to Lionframe - Rapid RESTful API development (20)

PDF
JSON, REST API
PPTX
10 przykazań bezpiecznego programowania
PPTX
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
PDF
Prostota i mozliwosci symfony2
PPTX
Testowanie na 101 sposobów
PDF
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
PDF
Szybkie tworzenie aplikacji na iPhone i Android - Netcamp #16
PDF
Budowa RESTowego api w oparciu o HATEOAS
PDF
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
PPTX
Co nowego w VS 2013 dla programistów ASP.NET?
PDF
Paleta możliwości web developera
PPTX
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
PDF
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
PPTX
Android i REST
PPTX
Błędy userów, niedoróbki koderów
PDF
WP-API - teoria i praktyka - WordUp Łódź #4
PDF
Dobre przepisy na cake php
PDF
Google App Engine i Google Play Services w Twoich aplikacjach
PDF
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
PDF
WebView security on iOS (PL)
JSON, REST API
10 przykazań bezpiecznego programowania
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
Prostota i mozliwosci symfony2
Testowanie na 101 sposobów
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Szybkie tworzenie aplikacji na iPhone i Android - Netcamp #16
Budowa RESTowego api w oparciu o HATEOAS
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Co nowego w VS 2013 dla programistów ASP.NET?
Paleta możliwości web developera
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Android i REST
Błędy userów, niedoróbki koderów
WP-API - teoria i praktyka - WordUp Łódź #4
Dobre przepisy na cake php
Google App Engine i Google Play Services w Twoich aplikacjach
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
WebView security on iOS (PL)
Ad

Lionframe - Rapid RESTful API development