A API de Bandeira Tarifária é uma ferramenta importante para quem precisa acompanhar as mudanças nas tarifas de energia elétrica no Brasil. Ela retorna informações sobre as bandeiras tarifárias e valores aplicados a cada mês, permitindo que usuários e empresas possam se programar e fazer ajustes na sua gestão de energia.
Além de ser uma única disponível e aberta, esta API é atualizada regularmente com informações precisas e confiáveis, garantindo que os usuários possam ter sempre acesso às informações mais atualizadas sobre as tarifas de energia. Isso é fundamental para que empresas e consumidores possam se planejar e evitar surpresas desagradáveis na hora de pagar suas contas de energia.
A utilização da API de Bandeira Tarifária é simples e fácil, e ela pode ser integrada com outras ferramentas e sistemas para ampliar sua funcionalidade e ajudar ainda mais na gestão da energia elétrica. Se você precisa acompanhar as mudanças nas tarifas de energia, essa é a ferramenta ideal para você.
Neste post vou mostrar como criar uma simples API Rest com o framework PHP CodeIgniter 4.
Passo 1: Criar o banco de dados
Neste exemplo criarei um banco de dados no MySQL com nome “tutorial”, para criar basta usar este comando:
CREATEDATABASE tutorial;
Também criarei uma tabela Livro neste banco de dados:
USE tutorial;CREATETABLE livro (
id INTNOTNULLAUTO_INCREMENT,
descricao VARCHAR(50)NOTNULL,
valor DOUBLENOTNULL,
autor VARCHAR(20)NOTNULL,PRIMARYKEY(id));
O próximo passo é popular a tabela com alguns livros, é só rodar o código abaixo:
INSERTINTO livro (descricao, valor, autor)VALUES('1984',21.01,'George Orwell'),('Admirável Mundo Novo',25.40,'Aldous Huxley'),('Fahrenheit 451',24.51,'Ray Bradbury');
Passo 2: Baixar e configurar o CodeIgniter 4
Agora basta entrar no site oficial do CodeIgniter 4 (https://codeigniter.com), baixar a última versão (neste momento 4.0.4) e extrair em um diretório.
Depois disto é necessário entrar no diretório do projeto e alterar o nome do arquivo “env” para “.env”, editar este arquivo removendo os comentários das linhas abaixo e inserindo os seguintes parâmetros:
Lembrando que os campos de usuário e senha do banco devem estar corretos conforme configurado no MySQL da máquina.
Passo 3: Criar o Model
A próxima etapa é criar o model conforme a tabela que criei, no diretório app/Models criar um arquivo chamado LivroModel.php e inserir os seguintes códigos:
O próximo passo é gerar o controller, no diretório app/Controllers criar o arquivo Livros.php com o código abaixo:
<?phpnamespaceApp\Controllers;useCodeIgniter\RESTful\ResourceController;useCodeIgniter\API\ResponseTrait;useApp\Models\LivroModel;classLivrosextendsResourceController{useResponseTrait;// lista todos livrospublicfunctionindex(){$model=newLivroModel();$data=$model->findAll();return$this->respond($data);}// lista um livropublicfunctionshow($id=null){$model=newLivroModel();$data=$model->getWhere(['id'=>$id])->getResult();if($data){return$this->respond($data);}return$this->failNotFound('Nenhum dado encontrado com id '.$id);}// adiciona um livropublicfunctioncreate(){$model=newLivroModel();$data=$this->request->getJSON();if($model->insert($data)){$response=['status'=>201,'error'=>null,'messages'=>['success'=>'Dados salvos']];return$this->respondCreated($response);}return$this->fail($model->errors());}// atualiza um livropublicfunctionupdate($id=null){$model=newLivroModel();$data=$this->request->getJSON();if($model->update($id,$data)){$response=['status'=>200,'error'=>null,'messages'=>['success'=>'Dados atualizados']];return$this->respond($response);};return$this->fail($model->errors());}// deleta um livropublicfunctiondelete($id=null){$model=newLivroModel();$data=$model->find($id);if($data){$model->delete($id);$response=['status'=>200,'error'=>null,'messages'=>['success'=>'Dados removidos']];return$this->respondDeleted($response);}return$this->failNotFound('Nenhum dado encontrado com id '.$id);}}
Abaixo uma breve explicação do funcionamento dos métodos deste controller:
index() – É usado para listar todos os livros. create() – Este método é usado para adicionar um livro. update() – Este é usado para alterar um livro existente. show() – É usado para listar apenas um livro. delete() – Este método é usado para remover um livro.
Passo 5: Configurando a rota para o endpoint
O próximo passo é criar as rotas do endpoint, para isso o CodeIgniter 4 disponibiliza o recurso Resource Routes que cria automagicamente as rotas mais usadas por um CRUD.
Para isso é só alterar a seguinte linha no arquivo Routes.php dentro da pasta app/Config:
$routes->get('/','Home::index');
Para esta:
$routes->resource('livros');
O framework cria as rotas com apenas essa linha, se fosse criar manualmente seria assim:
Para iniciar o servidor embutido basta abrir o terminal (ou cmd), navegar até a pasta raiz do projeto e executar o comando:
php spark serve
Por padrão o servidor subirá o projeto no caminho http://localhost:8080.
Passo 6: Testando a API
A ultima etapa é testar a API com algum programa cliente de API, eu utilizarei o Postman que é um dos mais populares.
Para listar o livros basta selecionar o verbo GET e na URL colocar http://localhost:8080/livros/
Após clicar em “Send” será exibido o JSON com todos os livros cadastrados.
Para listar apenas um livro, é preciso editar a URL, especificando o id no final:
Para adicionar um novo livro, basta colocar no verbo POST, apontar a URL novamente para http://localhost:8080/livros/, na aba Body especificar raw e tipo JSON, no corpo especificar os dados descricao, valor e autor conforme a imagem:
Para alterar um livro existente, é necessário colocar o verbo PUT, colocar o id do livro existente no final da URL e no Body colocar os dados em JSON com os campos descricao, valor e autor com os novos dados:
E por fim, para excluir um livro, é só escolher o verbo DELETE e e especificar o id do livro a ser removido no fim da URL:
Conclusão:
Neste tutorial mostrei como criar uma simples API Restfull com o CodeIgniter 4, deixando o desenvolvimento bem rápido.