Wallogit.com
2017 © Pedro Peláez
Biblioteca PHP para disponibilização ou consumo de APIs REST, (*1)
A instalação pode ser feita utilizando composer:, (*2)
$ composer require rafaelrsilva/http-services
Esta biblioteca possui 2 modos de utilização:, (*3)
get('categorias', function($request, $response){
//...
});
$api->get('categorias/(:num)/produtos', function($request, $response){
//...
});
$api->get('produtos/(:num)', function($request, $response){
//...
});
$api->post('produtos', function($request, $response){
//...
});
?>
Cria um listener GET para o caminho de recurso especificado., (*4)
Parâmetros:, (*5)
$path: Caminho do recurso.$response: Callback que deve ser chamado para retorar os dados para o solicitante.Retorno:, (*6)
Cria um listener POST para o caminho de recurso especificado., (*7)
Parâmetros:, (*8)
$path: Caminho do recurso.$response: Callback que deve ser chamado para retorar os dados para o solicitante.Retorno:, (*9)
Método utilizado para iniciar a API., (*10)
Parâmetros:, (*11)
Retorno:, (*12)
Obs.: Este método deve ser chamado após toda a configuração da API., (*13)
Para colocar parâmetros no meio da URL, pode-se utilizar os seguintes wildcards:, (*14)
(:num): Mapeia qualquer caracter numérico. Ex.: categorias/(:num)/produtos => categorias/1/produtos(:any): Mapeia qualquer caracter alfa-numérico antes da proxima barra. Ex.: noticias/(:any) => noticias/titulo-da-noticia(:all): Mapeia qualquer caracter alfa-numérico a partir do wildcard.: Ex.: noticias/(:all) => noticias/titulo-da-noticia/outro-slug/...Array associativo contendo as seguintes chaves:, (*15)
header: Parâmetros do header da requisição;query: Parâmetros enviados no final da URL (Query String);body: Parâmetros enviados pelo body da requisição;uri: Array contento a URL da requisição.OBS.: Nesta versão da biblioteca, os parâmetros enviados no meio da URL não são separados da URL automaticamente. Neste caso, os parâmetros devem ser acessados manualmente atrevés da variável $request['uri']., (*16)
Se o path for 'categorias/(:num)/produtos' e for chamado 'categorias/12/produtos', o array da 'uri' será:, (*17)
<?php
array('categorias', '12', 'produtos');
?>
Daí é só acessar através do índice do array:, (*18)
<?php $categoriaID = $request['uri'][1]; ?>
Função anônima utilizada para retornar os dados para quem efetuou a requisição. Possui os seguintes parâmetros, (*19)
responseData: Dados a serem retornado. Ex.: '{}';contentType: Tipo dos dados a serem retornado. Ex.: 'application/json';code: Código HTTP da resposta. Ex.: '200 OK', 'application/json; charset=UTF-8',
'Authorization' => 'Basic dXN1YXJpbzpzZW5oYQ==',
);
}
public function getCategorias(){
//Envia uma requisição GET para 'http://api.example.com/v1/categorias' sem passar parâmetros
return $this->doGetRequest('categorias', array());
}
public function getProdutos($categoriaID){
return $this->doGetRequest('categorias/'.$categoriaID.'/produtos', array());
}
public function getProduto($produtoID){
return $this->doGetRequest('produtos/'.$produtoID, array());
}
public function setProduto($nome, $descricao){
//Envia uma requisição POST para 'http://api.example.com/v1/produtos' passando 2 parâmetros no body
return $this->doPostRequest('produtos', array('nome' => $nome, 'descricao' => $descricao));
}
}
//Utilização do Service
$myService = new MyService();
$myService.setProduto('Nome', 'Descrição');
?>
Envia uma requisição para o endpoint do service., (*20)
Parâmetros:, (*21)
$path: Caminho do recurso solicitado.$method: Verbo HTTP da requisição ('GET', 'POST', 'PUT', 'DELETE').$parametros: Array contendo os parâmetros a serem enviados na requisição.$customHeader: Array contendo os parâmetros a serem enviados no header, além do default.Retorno:, (*22)
Envia uma requisição GET para o endpoint do service., (*23)
Parâmetros:, (*24)
$path: Caminho do recurso solicitado.$parametros: Array contendo os parâmetros a serem enviados na URL da requisição.$customHeader: Array contendo os parâmetros a serem enviados no header, além do default.Retorno:, (*25)
Envia uma requisição POST para o endpoint do service., (*26)
Parâmetros:, (*27)
$path: Caminho do recurso solicitado.$parametros: Array contendo os parâmetros a serem enviados na body da requisição.$customHeader: Array contendo os parâmetros a serem enviados no header, além do default.Retorno:, (*28)
Padroniza os dados de retorno das requisições. Os métodos doRequest, doGetRequest e doPostRequest utilizam este método., (*29)
Parâmetros:, (*30)
$data: Dados retornados da requisiçào.$error: Array contendo os informações de erros, caso tenha ocorrido.$header: Array contendo o header de resposta.Retorno:, (*31)
Obs.: Utilize este método ao utilizar mock do endpoint para que o formato de retorno seja igual ao esperado do endpoint., (*32)