Criando aplicações RestFul com Zend Framework 2
Upcoming SlideShare
Loading in...5
×
 

Criando aplicações RestFul com Zend Framework 2

on

  • 2,179 views

Nessa palestra apresento algumas características do ZF2 como o ServiceManager e o EventManager e como usá-las para criar um módulo útil para criação de aplicações RESTFul

Nessa palestra apresento algumas características do ZF2 como o ServiceManager e o EventManager e como usá-las para criar um módulo útil para criação de aplicações RESTFul

Statistics

Views

Total Views
2,179
Views on SlideShare
2,165
Embed Views
14

Actions

Likes
5
Downloads
21
Comments
0

2 Embeds 14

http://www.miniartigos.com.br 12
https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Criando aplicações RestFul com Zend Framework 2 Criando aplicações RestFul com Zend Framework 2 Presentation Transcript

  • Criandoaplicações RESTFulcomZend Framework2
  • Quem?
  • EltonMinetto Graduado/pós-graduadoemCiênciadaComputação Desenvolvedordesde1997 Professordesde2004 AutordetrêslivrossobrePHPeumsobregridcomputing PodcasternoBizandCode CTOdaCoderockredoCodeSquad MembrodadiretoriadaABRAPHP
  • Princípios REST
  • Dêatodasascoisasum identificador
  • http://zf2.dev/api/v1/album.album.json http://zf2.dev/api/v1/album.album.json/1 http://example.com/customers/1234 http://www.infoq.com/br/articles/rest-introduction
  • Vinculeascoisas
  • <orderself="http://x.com/orders/1234"> <amount>23</amount> <productref="http://x.com/products/4554"></product> <customerref="http://x.com/customers/1234"></customer> </order>
  • Utilizeosmétodospadrão
  • GET,PUT,POST,DELETE,HEAD,OPTIONS
  • Recursoscommúltiplas representações
  • http://zf2.dev/api/v1/album.album.json http://zf2.dev/api/v1/album.album.xml ouusaroheaderAccept
  • Comuniquesemestado
  • “[...]umservidornãodeveriaguardaroestadoda comunicaçãodequalquerumdosclientesquese comuniquecomelealémdeumaúnicarequisição.A razãomaisóbviaparaissoéescalabilidade-onúmerode clientesquepodeminteragircomoservidorseria consideravelmenteimpactadosefosseprecisomantero estadodocliente”
  • ZendFramework2
  • DesenvolvidopelaZendjuntocoma comunidadePHP Maisde2anosdedesenvolvimento Maisde200profissionaisenvolvidos Apoio Google,Microsoft,entreoutras
  • Mãonamassa!
  • Composer
  • mkdir rest_zf2 cd rest_zf2 curl -sS https://getcomposer.org/installer | php
  • ZFTool
  • php composer.phar require zendframework/zftool:dev- master
  • Criandooprojeto
  • php ./vendor/bin/zf.php create project ~/Documents/ Projects/vagrant/rest_zf2/Todo cd Todo php composer.phar self-update php composer.phar install
  • ApacheVHost
  • <VirtualHost *:80> ServerName todo.dev DocumentRoot /vagrant/rest_zf2/Todo/public SetEnv APPLICATION_ENV "development" SetEnv PROJECT_ROOT "/vagrant/rest_zf2/Todo" <Directory /vagrant/rest_zf2/Todo/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
  • Módulos
  • "[]ummóduloéumacoleçãodecódigo eoutrosarquivosqueresolveum problemaespecíficodeumaaplicaçãoou site." MattewO'Phinney.ZendFrameworkprojectleader
  • Módulo Application Módulo Api Módulo Admin
  • CriandoomóduloApi
  • cd ../ php ./vendor/bin/zf.php create module Api ~/ Documents/Projects/vagrant/rest_zf2/Todo/
  • Bancodedados
  • global.php https://gist.github.com/eminetto/5709289 sqlite3 data/todo.db create table item (id INTEGER PRIMARY KEY AUTOINCREMENT, description text, done int);
  • EntidadeseTableGateway
  • src/Application/Model/Item.php https://gist.github.com/eminetto/5709294 src/Application/Model/ItemTable.php https://gist.github.com/eminetto/5709297 Application/Module.php https://gist.github.com/eminetto/5710850
  • Rota
  • Api/config/module.config.php https://gist.github.com/eminetto/5709324
  • RestController
  • Módulo Application Módulo Api ApiControllerRestController
  • Api/src/Controller/RestController https://gist.github.com/eminetto/5710862
  • Eventos
  • UmEventManageréumobjetoqueagregalistenerspara umoumaiseventosequegera(trigger)outroseventos. Umlisteneréumafunção/método(callback)quereagea umevento
  • Módulo Application Módulo Api ApiControllerRestController ApiPreProcessorPreProcessor (segurança) ApiPostProcessorPostProcessor (serialização)
  • Criandooseventos
  • Alterar o api/Module.php https://gist.github.com/eminetto/5710879 PreProcessor: https://gist.github.com/eminetto/5710894 Application/config/entities.config.php (Segurança) https://gist.github.com/eminetto/5710859 PostProcessor: https://gist.github.com/eminetto/5710898
  • Serializando Múltiplosformatos
  • php composer.phar require jms/serializer:* src/Api/PostProcessor/AbstractPostProcessor.php https://gist.github.com/eminetto/5710903 src/Api/PostProcessor/Json.php https://gist.github.com/eminetto/5710908 src/Api/PostProcessor/Xml.php https://gist.github.com/eminetto/5710915
  • Referências
  • http://www.infoq.com/br/articles/rest-introduction http://www.slideshare.net/Alganet/rest-key http://framework.zend.com/manual/2.2/en/user-guide/ overview.html http://jmsyst.com/libs/serializer https://github.com/Coderockr/ApiModule
  • @eminetto http://www.eltonminetto.net http://coderockr.com http://code-squad.com eminetto@coderockr.com