API RESTful com PHP e Slim Framework

Olá pessoal, hoje veremos um exemplo de como utilizar o Slim Framework para construir uma API RESTful com PHP.

O que é RESTful

REST é a abreviação de Representation State Transfer, ou traduzindo, Transferência de Estado Representacional. Tal arquitetura tem como base três princípios: Recursos, ações e conteúdo.

Recursos

Estes são identificados na requisição, por exemplo: http://api.clubedosgeeks.com.br/usuario/jayr

Ações

São as ações definidas pelo protocolo HTTP:

Metodo Exemplo Descrição
GET //api.clubedosgeeks.com.br/usuarios Lista todos os usuários
GET //api.clubedosgeeks.com.br/usuario/1 Lista apenas usuário com id = 1
POST //api.clubedosgeeks.com.br/usuarios Para cadastrar usuários
PUT //api.clubedosgeeks.com.br/usuario/1 Para editar usuários
DELETE //api.clubedosgeeks.com.br/usuario/1 Para apagar usuário

Conteúdo

MIME TYPES – Deve ser usado para determinar o tipo de conteúdo que será usado. A identificação geralmente é feita no cabeçalho pelo campo cujo o nome é Content-type. Normalmente os tipos usados são JSON e XML. No nosso exemplo usaremos JSON.

Banco de dados

Iremos usar o mysql, crie um banco de dados, e uma tabela simples para cadastro de pessoa.

Slim Framework

É considerado um microframework, e tem como principal objetivo a construção de APIs. Veja o site oficial.

Instalando

Para instalar o Slim você vai precisar usar composer. Instale-o primeiro.

Crie um arquivo chamado composer.json, e escreva o seguinte nele:

Feito isso, abra o terminal ou o Prompt de comando, vá até a pasta de sua aplicação usando cd, e execute:

Pronto, está instalado! Agora vamos começar nossa aplicação.

Antes, note que no composer colocamos a pasta controllers para ser inclusa na nossa aplicação via autoloader.

.htaccess

Para começar, acesse a pasta \vendor\slim\slim, e copie o arquivo .htaccess para a pasta raiz da sua aplicação.

Estrutura das pastas

Nossa API será organizada da seguinte maneira:

ac.fw

templates/default.php

Este arquivo, como o nome sugere, é um arquivo padrão de template, que nos servirá como view. Este arquivo deve setar os cabeçalhos e mostrar o json.

controllers/Pessoa.php

Neste arquivo faremos os controles das ações, listando, salvando, editando e excluindo.

Note que usei a biblioteca PDO, e em alguns pontos você pode achar que tem muito código escrito, como na função editar por exemplo. Mas você pode usar a conexão que quiser. Gosto do PDO por ser orientado a objetos. Mas fica ao seu dispor.

index.php

Na pasta raiz da aplicação teremos um arquivo chamado index.php que será o arquivo principal da aplicação.

Nele faremos nossas rotas para o(s) controller(s). Se você preferir ter um arquivo de rotas separado, basta incluir ele depois.

Pronto está pronta nossa API.

Testando

Você pode testar sua nova API usando Postman, ou outro cliente REST.

GitHub

Você pode ver este projeto no GitHub

 

Sobre o autor:

Graduado em Análise e Desenvolvimento de Sistemas - FLS; Desenvolvedor Full-stack na UniLeão; Revisor de conteúdo do site Clube dos Geeks, católico, gosto de ler e escrever.

Postagens relacionadas:

12 respostas

  1. jose soares

    Muito bom… Parabens pelo artigo.
    todos os comandos funcionaram menos o editar (put).
    talvez seje porque usando no windows.

    Responder
  2. Djalma Manfrin

    Gostaria de fazer uma pergunta. Se tratando de uma API grande. Os cadastros, as alterações e as exclusões não são feitas em blocos? Como funcionaria essa parte se eu tivesse um array de objetos para realizar essas operações?

    Responder
  3. Diego

    Muito útil esse tutorial!

    Fiquei apenas com uma dúvida, no caso da consulta, teria como passar dois parâmetos ao invés de mandar somente o ID ?

    Responder
  4. Marcio Souza

    Parabéns pelo seu trabalho, consegui usá-lo e a sua abordagem é bem legal. Vi que a versão da Slim é 2.6 para este exemplo, teria como você atualizar para 3.0, pois teve muitos métodos que mudaram ?

    Responder

Deixe uma resposta

Seu e-mail não será publicado.