CodeIgniter RestServer

[Série RestServer] Criando um RestServer com CodeIgniter – Listando e inserindo registros

Nos tutoriais anteriores da série foi visto como instalar e configurar o restserver, verbos http, o banco de dados da série e as rotas, e nesse tutorial vamos começar a cosntruir as regras e colocar o nosso RestServer em funcionamento.

Se você ainda não leu os artigos anteriores, aproveite o momento e leia-os para acompanhar esse tutorial com o máximo de aproveitamento.

  1. Instalação e Configuração
  2. Verbos HTTP
  3. Banco de dados e Rotas

Além de fazermos uso dos conhecimentos adquiridos nos 3 tutoriais anteriores da série, vamos fazer o uso do DataTable para poder exibir a lista de usuários cadastrados. Se você ainda não conhece como funciona a integração do CodeIgniter com o DataTable, veja os tutoriais sobre o assunto que temos aqui no portal.

  1. Integrando Bower, Datatables e CodeIgniter
  2. Integrando Bower, Datatables e CodeIgniter – Parte II

Vamos ao nosso quarto tutorial da série!

Atualizando o model

No tutorial anterior criamos o model, que irá executar todas as regras relacionadas ao processamento dos dados enviados ou recebidos do banco de dados.

Nesse tutorial vamos implementar 2 métodos nesse model, um para recuperar os registros de usuários cadastrados e outro para inserir os dados de um usuário no banco de dados.

Abra o arquivo Usuarios_model.php e atualize seu conteúdo conforme o código-fonte a seguir.

Repare que na linha 10 é feito o carregamento de um helper chamado passw_service. Esse helper será criado logo após a atualização do código do model, e tem por finalidade executar os processos de criptografia e verificação do hash da senha.

Criando o helper passw_service

Esse helper deve ser criado no diretório application/helpers com o nome de passw_services_helper.php.

Veja a seguir o código-fonte do helper, comentado:

Agora que o model e o helper de apoio já estão criados, vamos atualizar o código do controller Usuarios.

Atualizando o controller Usuarios

No tutorial anterior criamos o controller Usuarios.php com um método chamado index_get, que até então exibia apenas uma mensagem para teste das rotas.

Vamos atualizar o código do controller para que ele passe a responder para requisições GET (para listar os usuários) e POST (para criar um novo usuário).

Abra o arquivo Usuarios.php e atualize-o conforme o código-fonte a seguir:

O método $this->response() utilizado diversas vezes no controller é o responsável por retornar os dados em formato JSON e o cabeçalho HTTP correspondente à resposta da requisição feita.

No arquivo application/libraries/Rest_Controller.php tem uma série de constantes referentes aos cabeçalhos HTTP. No segundo tutorial da série foi falado com mais detalhes sobre essas constantes, dê uma lida nele em caso de dúvidas.

Testando o código

Com essas implementações que foram feitas até o momento já temos o RestServer funcionando para listar os usuários e para inserir novos usuários. Para testar o funcionamento, utilize algum cliente REST com as rotas a seguir:

GET http://localhost/unici_restserver/api/usuarios

Irá retornar todos os usuários contidos na tabela usuariosdo banco de dados.

Série RestServer - Usuários GET

POST http://localhost/unici_restserver/api/usuarios

Irá salvar os dados do usuário no banco de dados.

Série RestServer - Usuários POST

Criando uma view para acessar as informações através do browser

Agora vamos criar uma view para acessar os dados armazenados no banco através do browser, usando o próprio CodeIgniter e os recursos da API que foram criados até o momento.

Você também pode utilizar esse código que já implementamos em aplicações desenvolvidas com AngulasJS, por exemplo, como já fizemos um tutorial aqui no portal onde criamos um CRUD com AngularJS e CodeIgniter.

O projeto criado no primeiro tutorial da série já possui uma view, e vamos apenas editá-la. Então abra o arquivo applications/views/welcome_message.php e atualize-o com o código-fonte a seguir.

Não vamos entrar em detalhes  em relação aos arquivos HTML, CSS e JavaScript para não alongarmos muito o tutorial e perdermos o foco. Caso tenha dúvidas, use os comentários para interagir e tirar essas dúvidas.

Abra o arquivo e atualize o seu conteúdo conforme o código-fonte a seguir:

Para complementar as funcionalidades da view será necessario criar um arquivo scripts.js para adicionar as funcionalidades.

Crie o arquivo no diretório assets/js. Se o diretório não existir, crie-o.

Adicione o código-fonte a seguir ao arquivo.

Com esses arquivos criados, ao acessar pelo browser a URL http://localhost/unici_restserver/ teremos como retorno algo semelhante à imagem a seguir:

Série RestServer - View

Ao clicar no botão Novo Usuário será aberta uma modal para preenchimento dos dados, conforme imagem a seguir:

RestServer - View Modal

Viu como é fácil montar as primeiras instruções básicas da API?! No próximo tutorial vamos criar as funcionalidades e regras para editar os dados do usuário e excluir o usuário e também uma rotina para o upload da imagem do usuário. Não perca!

Download do código-fonte no github