Mysql 8 + Laravel 8
Projeto que remonta parte da API da Marvel utilizando o framework Laravel 8 e banco de dados Mysql 8.
Endpoints disponíveis:
/v1/public/characters
/v1/public/characters/{characterId}
/v1/public/characters/{characterId}/comics
/v1/public/characters/{characterId}/events
/v1/public/characters/{characterId}/series
/v1/public/characters/{characterId}/stories
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
- Faça eownload e descompacte a versão em https://github.com/bartollo/clone-api-marvel-laravel
- Entre na pasta do projeto e digite no console
composer install
- Install javascript assets
npm install
- Crie o seu arquivo .env com os dados do seu ambiente.
- Execute as migrations para criar o banco de dados
php artisan migrate
- Execute os seeders para popular o banco de dados.
- Caso prefira fazer a importação do .sql ao invés de executar as migrations e seeders. O arquivo marvel_db.sql está na pasta raiz do projeto.
- Execute o laravel server com o comando
php artisan serve
Method | URI | Descrição |
---|---|---|
GET/HEAD | api/characters | Exibe lista de personagens. |
GET/HEAD | api/characters/{characterId} | Exibe personagem de acordo com especificação do seu id. |
GET/HEAD | api/characters/{characterId}/comics | Exibe lista de COMICS relacionadas ao personagem especificado. |
GET/HEAD | api/characters/{characterId}/events | Exibe lista de EVENTS relacionadas ao personagem especificado. |
GET/HEAD | api/characters/{characterId}/series | Exibe lista de SERIES relacionadas ao personagem especificado. |
GET/HEAD | api/characters/{characterId}/stories | Exibe lista de STORIES relacionadas ao personagem especificado. |
Campo | Descrição | Tipo |
---|---|---|
id | Código do personagem | Inteiro |
name | Nome do personagem | String |
description | Descrição do personagem | String |
modified | Data de Atualização do personagem | Data |
resourceURI | URI do personagem | String |
thumbnail | Array com Dados do Thumbnail do personagem | String |
comics | Array com Dados das COMICS do personagem | Array |
series | Array com Dados das SERIES do personagem | Array |
events | Array com Dados das EVENTS do personagem | Array |
stories | Array com Dados das STORIES do personagem | Array |
url | Array com Dados das URLs do personagem | Array |
Campo | Descrição | Tipo |
---|---|---|
resourceURI | URI do COMIC | String |
name | Nome do COMIC | String |
Campo | Descrição | Tipo |
---|---|---|
resourceURI | URI do EVENT | String |
name | Nome do EVENT | String |
Campo | Descrição | Tipo |
---|---|---|
resourceURI | URI da SERIE | String |
name | Nome da SERIE | String |
Campo | Descrição | Tipo |
---|---|---|
resourceURI | URI do STORY | String |
name | Nome do STORY | String |
type | Tipo da STORY | String |
Os parâmetros e códigos de Erros são aplicados a todos os EndPoints informados.
- orderBy (String): Define o campo que vai ordenar o resultado exibido. Valores Aceitos: id, name.
- limit (inteiro): Limita a resultado definido para o número especificado informado.
- offset (inteiro): Ignora o número especificado de recursos no conjunto de resultados.
- name (String): Define o valor para busca no campo nome. (Em Teste 🚨)
- 409 - Limit greater than 100.
- 409 - Limit invalid or below 1.
- 409 - Invalid or unrecognized parameter.
- 409 - Empty parameter.
- 409 - Invalid or unrecognized ordering parameter.
- 409 - Too many values sent to a multi-value list filter.
- 409 - Invalid value passed to filter.
- code (int, optional): The HTTP status code,
- status (string, optional): Descrição do status.,
- copyright (string, optional): Dados de copyright,
- attributionText (string, optional): Informações do Data Provider,
- attributionHTML (string, optional): Informações do Data Provider em HTML.,
- data (CharacterDataContainer, optional): Resultado da chamada,
- etag (string, optional): Um valor resumido do conteúdo retornado pela chamada.
{
"code": 200,
"status": "OK",
"copyright": "© 2021 MARVEL",
"attributionText": "Data provided by Marvel. © 2021 MARVEL",
"attributionHTML": "<a href=\"http://marvel.com\">Data provided by Marvel. © 2021 MARVEL</a>",
"etag": "f0fbae65eb2f8f28bdeea0a29be8749a4e67acb3",
"data": {
}
php artisan test
- Os dados apresentados pela API não são os mesmos da Marvel. Todos as informações estão sendo geradas pelas factories através do classe fake.
- Implementação de Proxy Design Pattern: Criação de classes Proxy que herdarão a classe Model e farão a interação entre a classe controller e resource. Nesta classe irá existir metods get e set e outros.
Distributed under the MIT Licença. See LICENSE
for more information.
Luiz Bartolomeu - luizbart@gmail.com
Project Link: https://github.com/your_username/repo_name