Como disse no texto sobre REST, a cerca de um ano comecei a estudar essa arquitetura. E que maneira melhor de conhecer uma tecnologia do que implementando-a?
Bom com esse intuito apliquei os principios de REST ao longo dos projetos que tive, em paralelo montei uma biblioteca com o pacote de classe uteis aos projetos, que consideirei estável este ano e então publiquei. Pode conferir o projeto no PHPClasses ou se aventurar no GITHub.
É um conjunto de classes para PHP que constitui o seguinte:
- RESTAction – Uma interface para ações a serem tomadas
- RESTController – Interface para os controllers que responderão as requisições
- RESTView – Interface para as classes responsáveis pelas respostas
- RESTRequest – Classe que contêm os dados da requisição feita
- RESTResponse – Classe para controlar a resposta
- RESTServer – Principal classe para o controle do fluxo das informações
O Objetivo principal é prover um meio fácil de mapear Métodos e URLs para Controller(ou métodos deste), assim o uso básico é o seguinte:
$rest = new RestServer;
$rest->addMap("GET","/user/[0-9]*","UserController");
$rest->addMap("POST","/user","UserController::insert");
Você escolhe um método HTTP, um padrão de URL (usando regex) e o controller ou até o método especifico.(Pode até mapear direto para uma View, mas isso é feio ;).
O RestServer é passado para o controller para este poder usar o que for necessário. RestServer prove as informações da requisição(URL, método, parametros, mime…) através do RESTRequest e permite configurar a resposta (headers, content…) pelo RESTReponse, além de possuir controle de autênticação.
Mais detalhes pode conferir nos arquivos do pacotes.
Testarei essa classe com crtza!
Olá William.
No repositório no GIThub (o link esta no texto) você pode ver o exemplo 3, lá eu faço chamadas básicas ao banco de dados, assim como criei um cliente para consumir o webservice.
O ideal para usar banco de dados é buscar um framework para isso, como o doctrine ou o outlet.
Para testar basta um servidor web com php, e configurar o MySql(ou outro que for usar).
Depois é só usar o RestServer na sua aplicação.
Me parece espetacular para disponibilizar APIs de sistemas próprios… muito bom, ainda preciso estudar mais REST!
Eu vi o seu trabalho no phpclasses.org e achei espetacular, sua criação é muito útil para diversos projetos. Parabéns!!!
Obrigado pelos comentários galera!
Olá,
Soube do RESTServer pelo PHPClasses, parabéns pelo projecto e por disponibilizar para todos os utilizadores.
Cara sua idea de criar a classe é perfeita. parabéns.
Tem como vc fazer um exemplo usando consulta em banco de dados?
Quais os requisitos para testar a ferramenta.
Presico usar e ñ consegui visualizar resulta algum.