criando api rest no zend framework 2

42
Criando API Rest no Zend Framework 2 Nome Juciellen Cabrera Julho/2015

Upload: rankest

Post on 17-Feb-2017

540 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Criando API Rest no Zend Framework 2

Criando API Rest no Zend Framework 2

Nome Juciellen CabreraJulho/2015

Page 2: Criando API Rest no Zend Framework 2

2

Conhecendo o palestrante

➢ 2009 – Sistemas de Informação;

➢ 8 anos de desenvolvimento com

PHP;

➢ Maio/2015 – ZCPE (Zend Certified

PHP Enginner);

➢ Out/2014 – Construtor 4Linux:

➢ Área de Inovações;

➢ Treinamento.

Juciellen Cabrera

Page 3: Criando API Rest no Zend Framework 2

3

Conhecendo a 4Linux

➢ Metodologia IT Experience -

Cenários reais

➢ Cursos práticos, rápidos e baratos de

autores feras: www.4shot.com.br

➢ Projetos complexos de missão crítica,

com infra e desenvolvimento PHP

Page 4: Criando API Rest no Zend Framework 2

4

Metodologia IT Experience Cenários reais

Page 5: Criando API Rest no Zend Framework 2

5

Cursos práticos, rápidos e baratos de autores feras

Page 6: Criando API Rest no Zend Framework 2

6

Lançamento 4Linux

Page 7: Criando API Rest no Zend Framework 2

7

Ao final da minha palestra

Page 8: Criando API Rest no Zend Framework 2

8

Ao final da minha palestra

➢ 02 cursos Online:

➢ Curso Desenvolvimento Orientado a

objetos PHP -Código 4500

➢ 01 Elephant

Page 9: Criando API Rest no Zend Framework 2

9

Criando API Rest com Zend Framework 2

Como criar uma aplicação REST no Zend

Framework 2

Page 10: Criando API Rest no Zend Framework 2

10

Criando API Rest com Zend Framework 2

● API

● WebService

● REST

● ZF2 – Abstract Restful Controller

● Algumas boas práticas

● Como resolvemos alguns problemas

Page 11: Criando API Rest no Zend Framework 2

11

Criando API Rest com Zend Framework 2

API - Application Programming Interface

➢ Interface de Programação de Aplicações;

➢Trata-se de uma interface padronizada desenvolvida já com

o objetivo de fácil integração com outras aplicações;

➢SOA (Service Oriented Architecture) – Arquitetura Orientada

a Serviço;

Page 12: Criando API Rest no Zend Framework 2

12

Criando API Rest com Zend Framework 2

Web Service

Web Service – Quando uma API se comunica via Web.

Page 13: Criando API Rest no Zend Framework 2

13

Criando API Rest com Zend Framework 2

O que é um WebService REST?

➢REST (Representational State Transfer);

➢Baseados no protocolo HTTP;

➢Troca de informações usando XML ou JSON.

➢Restful

Page 14: Criando API Rest no Zend Framework 2

14

Criando API Rest com Zend Framework 2

https://www.chemaxon.com/wp-content/themes/chemaxon/images/product_pages/jws/rest.jpg

Page 15: Criando API Rest no Zend Framework 2

15

Criando API Rest com Zend Framework 2

http://www.google.com/trends/explore?q=xml+api#q=xml%20api%2C%20json%20api&cmpt=q

Json X XML

Page 16: Criando API Rest no Zend Framework 2

16

Criando API Rest com Zend Framework 2

API Google Maps

Page 17: Criando API Rest no Zend Framework 2

17

Criando API Rest com Zend Framework 2

Principais Métodos HTTP

➢ POST

➢ GET

➢ PUT

➢ DELETE

Page 18: Criando API Rest no Zend Framework 2

18

Criando API Rest com Zend Framework 2

Você precisará de uma ferramenta para fazer as

requisições simulando um cliente

RestClient

Postman

Page 19: Criando API Rest no Zend Framework 2

19

Criando API Rest com Zend Framework 2

O que é necessário para criar uma API com o

ZF2?

Page 20: Criando API Rest no Zend Framework 2

20

1 cd my/project/dir

2 git clone 

git://github.com/zendframework/ZendSkeletonApplication.git

3 cd ZendSkeletonApplication

4 php composer.phar self­update

5 php composer.phar install

Criando API Rest com Zend Framework 2

Instalando o ZF2:

Page 21: Criando API Rest no Zend Framework 2

21

routes => array( route=>array(  'api' => array(    'type'    => 'Literal',    'options' => array(       'route'    => '/api',       'defaults' => array(           '__NAMESPACE__' => 'Application\Controller'),),     'may_terminate' => true,     'child_routes' => array(         'default' => array(           'type'    => 'Segment',          'options' => array(          'route'    => '[/:controller[/:id]]',               'constraints' => array(               'controller' => '[a­zA­Z][a­zA­Z0­9_­]*',                  'id'     => '[0­9_­]*'),                              ), ),),),))

Criando API Rest com Zend Framework 2

Configurar uma rota em module.config.php

Page 22: Criando API Rest no Zend Framework 2

22

'view_manager' => array(        

        'strategies' => array(

            'ViewJsonStrategy',

        ),

   )

Criando API Rest com Zend Framework 2

Ativar o JsonStrategy no view manager em

module.config.php

Page 23: Criando API Rest no Zend Framework 2

23

MyRestController:

<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractRestfulController;

class MyRestController extends AbstractRestfulController

{    

}

Criando API Rest com Zend Framework 2

Criar um controller que estenda de AbstractRestfulController

Page 24: Criando API Rest no Zend Framework 2

24

'controllers' => array(

 'invokables' => array(

   'Application\Controller\Index'=>'Application\Controller\IndexController',

   'Application\Controller\Rest' =>'Application\Controller\MyRestController'

    )

  )

Criando API Rest com Zend Framework 2

Registrar o controller em module.config.php

Page 25: Criando API Rest no Zend Framework 2

25

GET - /api/rest | /api/rest/1:

class MyRestController extends AbstractRestfulController

{

public function getList(){        

    } 

public function get($id){        

    }  

}

Criando API Rest com Zend Framework 2getList() e get($id)

Page 26: Criando API Rest no Zend Framework 2

26

POST - /api/rest:

class MyRestController extends AbstractRestfulController

{

public function create ($data){      

    }  

}

Criando API Rest com Zend Framework 2

create($data)

Page 27: Criando API Rest no Zend Framework 2

27

PUT - /api/rest/1:

class MyRestController extends AbstractRestfulController

{

public function update ($id,$data){      

    }  

}

Criando API Rest com Zend Framework 2

update()

Page 28: Criando API Rest no Zend Framework 2

28

DELETE - /api/rest/1:

class MyRestController extends AbstractRestfulController

{

public function delete ($id){      

    }  

}

Criando API Rest com Zend Framework 2

delete($id)

Page 29: Criando API Rest no Zend Framework 2

29

Criando API Rest com Zend Framework 2

Algumas classes com as quais você provavelmente irá

trabalhar:

➢ Zend\View\Model\JsonModel;

➢Zend\Http\Response;

➢Zend\Http\Request;

➢Zend\Http\Headers.

Page 30: Criando API Rest no Zend Framework 2

30

use Zend\View\Model\JsonModel;

class MyRestController extends AbstractRestfulController

{

public function getList(){

        return new JsonModel(array('mensagem'=> Nada a listar));

    }    

}

Criando API Rest com Zend Framework 2

Retornando dados usando JsonModel

Page 31: Criando API Rest no Zend Framework 2

31

Criando API Rest com Zend Framework 2

Retornando dados usando JsonModel

Page 32: Criando API Rest no Zend Framework 2

32

Criando API Rest com Zend Framework 2

Status Code Mais Utilizados

➢ 200 OK;

➢ 201 Created;

➢ 400 Bad Request;

➢ 401 Unauthorized;

➢ 403 Forbidden;

➢ 404 Not Found;

➢ 405 Method Not Allowed;

➢ 500 Internal Server Error.

Page 33: Criando API Rest no Zend Framework 2

33

class MyRestController extends AbstractRestfulController

{public function create ($data){

        $this­>response­>getHeaders()­>addHeaderLine('Content­type','application\json');                if(empty($data)){            $this­>response­>setStatusCode(Response::STATUS_CODE_400);            return new JsonModel(array('mensagem'=>'Nenhum dado foi enviado'));         }            }

}

Criando API Rest com Zend Framework 2

Manipulando cabeçalhos e status code

Page 34: Criando API Rest no Zend Framework 2

34

Criando API Rest com Zend Framework 2

POST

Page 35: Criando API Rest no Zend Framework 2

35

class MyRestController extends AbstractRestfulController

{

public function delete($id){

        $this­>response­>setStatusCode(Response::STATUS_CODE_401);

        return new JsonModel(array('mensagem'=>'Você precisa estar logado'));

    }

}

Criando API Rest com Zend Framework 2

Manipulando cabeçalhos e status code

Page 36: Criando API Rest no Zend Framework 2

36

Criando API Rest com Zend Framework 2

DELETE

Page 37: Criando API Rest no Zend Framework 2

37

Criando API Rest com Zend Framework 2

Módulos adicionais que utilizamos

➢ ZfrCors:

➢Define quem pode requisitar serviço;

➢Manipula cabeçalhos;

➢ JWT:

➢Faz autenticação via token;

➢ JMSSerializer:

➢Utilizado para serializar objetos complexos, como por exemplo entidades do Doctrine.

Page 38: Criando API Rest no Zend Framework 2

38

Criando API Rest com Zend Framework 2

PSR – 7

HTTP message interfaces

http://www.php-fig.org/psr/psr-7/

Page 39: Criando API Rest no Zend Framework 2

39

Criando API Rest com Zend Framework 2

APIgility

Construtor de API

https://apigility.org/

Page 40: Criando API Rest no Zend Framework 2

40

Perguntas

Page 41: Criando API Rest no Zend Framework 2

41

Boa Sorte!!

Page 42: Criando API Rest no Zend Framework 2

42

Juciellen [email protected]

www.4linux.com.brwww.4shot.com.br

Sigam-nos@4linux

@4shotcursos