Projeto desenvolvido em Laravel utilizando a API PokéAPI (https://pokeapi.co/). Para a criação das views foi utlizado o Blade Template do Laravel e o Bootstrap e Jquery, você poderá listar os pokemons por paginação.
Para as requisições HTTP foi utilizado a biblioteca do Guzzle (https://packagist.org/packages/guzzlehttp/guzzle), e foi utilizado o design pattern Repository. Aproveitando para o reaproveitamento de código, você pode utilizar como uma API onde ao invés de retornar um view retornará um JSON para que os dados possam ser consumidos por outras aplicações.
Você precisará do composer e do npm para gerenciar as dependências.
Após clonar o projeto, instale as dependencias do PHP com comando:
composer install
Para baixar o restante das dependências (Bootstrap, JQuery, ...) utilize o comando:
npm install
E logo após utilize o comando:
npm run dev
Com as dependências instaladas, você precisará configurar as suas variaveis de ambiente, para isso faça uma cópia do arquivo .env.example para .env na raiz do projeto e logo após execute o comando abaixo para criar a APP_KEY:
php artisan key:generate
As variaveis de ambiente sempre são carregas ao iniciar o servidor, caso tenha alguma alteração é necessário reiniciar o serviço.
Depois configure o APP_URL do seu servidor, por padrão é http://localhost:8000
Para utilizar temos duas opções, utilizar com a view que criada ou usar a API que retornará um json e você poderá utilizar em outras aplicação se necessário.
Utilizando as view: host:port/pokemons
Utilizando a API: host:port/api/pokemons
Por padrão, tanto nas views como na API, retornará 10 registros por página, porém você pode configurar isso nas variavéis de ambiente, basta criar uma nova chave com o valor desejado, como é mostrado abaixo:
POKEMON_LIMIT_PER_PAGE=20
dessa forma retornará 20 registros, você também pode alterar essa informação acessando o arquivo:
config/pokemon.php
Para iniciar o servidor local utilize o comando:
php artisan serve
https://documenter.getpostman.com/view/7272792/T1LPDSCF?version=latest
Screenshots
Example retorno da API