Giter Site home page Giter Site logo

danipoletto / challenge-alura-back-end-5-symfony Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 566 KB

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

Shell 3.84% PHP 96.16%
alurachallengebackend5 api doctrine php symfony api-rest vitrinedev

challenge-alura-back-end-5-symfony's Introduction

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": "[email protected]",
"senha": "123456"
}
-

O login e senha padrão são "[email protected]" 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

challenge-alura-back-end-5-symfony's People

Contributors

danipoletto avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.