Skip to content

pdr-tuche/Biblia

Repository files navigation

Biblia

📗 api rest em php utilizando laravel a fins de estudo

Este projeto foi criado para me ajudar a aprender o framework Laravel.

Nos códigos deste projeto voce irá encontrar muita anotação em forma de comentarios.

Aprendizados 🤓

Inicialmente, aprendi a criar uma API REST entendendo os conceitos dos padrões de projetos presentes no Laravel, consequentemente em paralelo, aprendi a utilizar algumas funções de CLI que o Laravel disponibiliza para deixar o desenvolvimento mais agil.

Após criação da API, dei uma pesquisada sobre as seeds, cujo propósito é popular o banco de dados. Entendi como criar e utiliza-las para fornecer dados iniciais, facilitando o desenvolvimento e os testes do sistema. Foi bastante desafiador cria-las por que tive que utilizar a API da biblia digital que possui uma limitacao de 20 requisições por hora. Para contornar esta limitação criei scripts utilizando python que salvam as respostas das requisições em pastas e utilizei uma VM da Google Cloud para hospedar e executar esse script a cada hora de forma automatizada. Assim, consegui obter dados para as seeds.

A implementação de autenticação de usuários e a proteção de rotas foram desafios que enfrentei com determinação. Ainda estou um pouco confuso em relação a isso principalmente por que existem varios tipos de autenticação e gostaria de entender mais como eles funcionam. Neste projeto apliquei autenticação com token jwt.

Os testes de API, por sua vez, se revelaram essenciais para assegurar a integridade do projeto. Aprendi a escrever e executar testes, garantindo que a aplicação funcionasse conforme o esperado em diversas situações.

Um desafio notável foi compreender a fundo o funcionamento do Laravel. Para superar essa barreira, recorri à documentação do framework, mas minha compreensão se aprofundou ainda mais ao analisar códigos de outros desenvolvedores no GitHub, StackOverflow e, principalmente, ao assistir a tutoriais no YouTube. Essa abordagem prática foi fundamental para assimilar os conceitos e aplicá-los de maneira eficaz no meu projeto.

Em resumo, o desenvolvimento do projeto não apenas ampliou meu conhecimento técnico, mas também aprimorou minhas habilidades de pesquisa e resolução de problemas, destacando a importância da abordagem prática na assimilação de novos conhecimentos.

Rodar Localmente 💻

Pré-requisitos:

  1. PHP 8.2
  2. Composer

passos:

  1. clonar repositório:
git clone https://github.com/pdr-tuche/Biblia.git
  1. dentro da pasta do repositório, instale as depedencias
composer install
  1. copie o conteúdo do arquivo .env.example em um arquivo .env

  2. configure o arquivo .env com as informações de conexao do seu banco de dados. (linha 11 a 16)

  3. crie uma nova chave para a aplicação

php artisan key:generate
  1. realize as migrações para o banco de dados
php artisan migrate
  • se quiser popular seu banco de dados execute:
php artisan migrate:fresh --seed
  1. rodar servidor
php artisan serve

Documentação da API 📄

A documentação foi criada no postman. Voce pode conferir no postman web, ou você pode importar o arquivo Biblia.postman_collection.json (esta na pasta .postman_export_file) no postman da sua maquina para ter acesso a documentação e as requisições.

demonstração:

demonstração

Comandos Úteis (CLI) 👾

iniciar servidor:

php artisan serve

criar migracoes:

php artisan make:model nome_do_modelo --migration

criar controller:

php artisan make:controller NomeController --api

listar rotas

php artisan route:list

criar seed

php artisan make:seeder

Rodando os testes 🧪

Para rodar os testes, rode o seguinte comando na pasta raiz

todos os testes

  php artisan test

apenas testes do endpoint de Testamento

  php artisan test tests/Feature/TestamentoRoutesTest.php

apenas testes do endpoint de Livro

  php artisan test tests/Feature/LivroRoutesTest.php

apenas testes do endpoint de Versiculo

  php artisan test tests/Feature/VersiculoRoutesTest.php

Coisas que me ajudaram

  1. 🎥 Desenvolvendo api rest laravel Clean Code

  2. 🎥 Desenvolvendo api rest laravel Code with Dary

  3. 🎥 Conteúdo de testes do Code Experts

  4. 📃 para criação das seeds utilizei a API da biblia digital

  5. 📄 criando serviços linux com systemd

About

📗 api rest php laravel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published