criando api rest no zend framework 2

Post on 17-Feb-2017

538 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Criando API Rest no Zend Framework 2

Nome Juciellen CabreraJulho/2015

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

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

4

Metodologia IT Experience Cenários reais

5

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

6

Lançamento 4Linux

7

Ao final da minha palestra

8

Ao final da minha palestra

➢ 02 cursos Online:

➢ Curso Desenvolvimento Orientado a

objetos PHP -Código 4500

➢ 01 Elephant

9

Criando API Rest com Zend Framework 2

Como criar uma aplicação 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

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;

12

Criando API Rest com Zend Framework 2

Web Service

Web Service – Quando uma API se comunica via Web.

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

14

Criando API Rest com Zend Framework 2

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

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

16

Criando API Rest com Zend Framework 2

API Google Maps

17

Criando API Rest com Zend Framework 2

Principais Métodos HTTP

➢ POST

➢ GET

➢ PUT

➢ DELETE

18

Criando API Rest com Zend Framework 2

Você precisará de uma ferramenta para fazer as

requisições simulando um cliente

RestClient

Postman

19

Criando API Rest com Zend Framework 2

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

ZF2?

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:

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

22

'view_manager' => array(        

        'strategies' => array(

            'ViewJsonStrategy',

        ),

   )

Criando API Rest com Zend Framework 2

Ativar o JsonStrategy no view manager em

module.config.php

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

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

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)

26

POST - /api/rest:

class MyRestController extends AbstractRestfulController

{

public function create ($data){      

    }  

}

Criando API Rest com Zend Framework 2

create($data)

27

PUT - /api/rest/1:

class MyRestController extends AbstractRestfulController

{

public function update ($id,$data){      

    }  

}

Criando API Rest com Zend Framework 2

update()

28

DELETE - /api/rest/1:

class MyRestController extends AbstractRestfulController

{

public function delete ($id){      

    }  

}

Criando API Rest com Zend Framework 2

delete($id)

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.

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

31

Criando API Rest com Zend Framework 2

Retornando dados usando JsonModel

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.

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

34

Criando API Rest com Zend Framework 2

POST

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

36

Criando API Rest com Zend Framework 2

DELETE

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.

38

Criando API Rest com Zend Framework 2

PSR – 7

HTTP message interfaces

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

39

Criando API Rest com Zend Framework 2

APIgility

Construtor de API

https://apigility.org/

40

Perguntas

41

Boa Sorte!!

42

Juciellen Cabrerajuciellen.cabrera@4linux.com.br

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

Sigam-nos@4linux

@4shotcursos

top related