DaniPoletto / challenge-alura-back-end-5-symfony

Projeto desenvolvido durante a 5ª edição do Challenge Backend da Alura

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Challenge Alura Back-end 5 edição

🚧 Projeto em construção 🚧

O que é um challenge

São 4 semanas de desafios propostos pela plataforma de ensino Alura com o objetivo de praticar construindo um projeto. Toda semana são disponibilizados desafios e o aluno deve usar o material de apoio fornecido a cada semana para resolver o desafio proposto.

Projeto

Essa edição tem como objetivo construir uma api de plataforma de streaming.

Desafios de cada semana

  • 1ª semana - CRUD de videos e testes de api utilizando Postman

    • Retornar vídeos
    • Retornar um vídeo
    • Cadastrar vídeos
    • Atualizar vídeo
    • Deletar vídeo
    • Testes Postman
  • 2ª semana - Nesta segunda semana do desafio o objetivo é criar mais de um modelo/entidade, rotas CRUD e relacionais, buscas na base via parâmetros de query, fazer testes de unidade e integração.

    • Retornar categorias
    • Retornar um categoria
    • Cadastrar categoria
    • Atualizar categoria
    • Deletar categoria
    • Atribuir vídeo a categoria
    • Retornar vídeos por categoria
    • Utilizar query parameters em vídeo
    • Testes de unidade
    • Testes de integração
  • 3ª e 4ª semana - Paginação, autenticação e deploy da aplicação.

    • Paginação
    • Autenticação
    • Deploy (Deploy feito na versão em Laravel)

Tecnologias utilizadas

Symfony 5.4, Doctrine, MySQL e PHP 7.3.5.

Versão em Laravel

Versão em Laravel

Como inicializar o projeto

1 - Baixar os arquivos do repositório utilizando git clone

2 - Instalar as dependências do projeto

componser install

3 - Editar o arquivo .env com as credencias do banco de dados

4 - Criar banco

php bin\console doctrine:database:create

5 - Rodar as migrations

php bin\console doctrine:migrations:migrate

6 - Rodar fixtures para criar usuário para teste

php bin\console doctrine:fixtures:load

6 - Subir servidor

php -S localhost:8080 -t public

Padrão

O padrão de formato utilizado é o Json tanto para requisições como resposta.

URL Base

http://localhost:8080

Rotas

Autenticação

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /login Retorna token obrigatório em todas as outras requisições
{
"usuario": "teste@teste.com.br",
"senha": "123456"
}
-

O login e senha padrão são "teste@teste.com.br" e "123456". A autenticação é feita passando um Bearer Token como Authorization.

Categorias

Retornar categorias

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /categorias Retornar todas as categorias - -
Ordenação
/categorias?sort[titulo]=ASC&sort[cor]=DESC
Filtros
/categorias?titulo=curso
Paginação
/categorias?page=1&per_page=2

Video

Retornar uma categoria

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /categorias/{id} Retornar uma categoria por id - -

Video

Cadastrar uma categoria

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /categorias Cadastrar uma categoria
{
"titulo": "Laravel",
"cor": "#ffffff"
}
-
Campos
Nome Tipo Descrição
titulo string Obrigatório
cor string Obrigatório

Video

Atualizar uma categoria

Método Rota Descrição BODY PARAMS QUERY PARAMS
PUT /categorias/{id} Atualizar uma categoria por id
{
"titulo": "Laravel",
"cor": "#ffffff",
}
-
Campos
Nome Tipo Descrição
titulo string Obrigatório
cor string Obrigatório

Video

Deletar uma categoria

Método Rota Descrição BODY PARAMS QUERY PARAMS
DELETE /categorias/{id} Deletar uma categoria por id - -

Video

Videos

Retornar videos

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /videos Retornar todos os videos - -
Ordenação
/videos?sort[titulo]=ASC&sort[url]=DESC
Filtros
/videos?titulo=curso laravel
Paginação
/videos?page=1&per_page=2

Video

Retornar um video

Método Rota Descrição BODY PARAMS QUERY PARAMS
GET /videos/{id} Retornar um video por id - -

Video

Cadastrar um video

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /videos Cadastrar um video
{
"titulo": "Aula Laravel",
"descricao": "videoaula de laravel",
"url": "laravel.com.br"
}
-
Campos
Nome Tipo Descrição
titulo string Obrigatório
descricao string Obrigatório
url string Obrigatório

Video

Atualizar um video

Método Rota Descrição BODY PARAMS QUERY PARAMS
PUT /videos/{id} Atualizar um video por id
{
"titulo": "Aula Laravel",
"descricao": "videoaula de laravel",
"url": "laravel.com.br"
}
-
Campos
Nome Tipo Descrição
titulo string Obrigatório
descricao string Obrigatório
url string Obrigatório

Video

Deletar um video

Método Rota Descrição BODY PARAMS QUERY PARAMS
DELETE /videos/{id} Deletar um video por id - -

Video

About

Projeto desenvolvido durante a 5ª edição do Challenge Backend da Alura


Languages

Language:PHP 96.2%Language:Shell 3.8%