Giter Site home page Giter Site logo

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

View Code? Open in Web Editor NEW
2.0 1.0 0.0 751 KB

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

Home Page: https://challenge-alura-back-end-5-laravel-gi71.vercel.app/api/

Shell 0.76% PHP 83.26% JavaScript 0.49% Blade 15.49%
api api-rest challenge-backend laravel php alura alurachallengebackend5 vitrinedev

challenge-alura-back-end-5-laravel'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ídeo
    • Atualizar vídeo
    • Deletar vídeo
    • Testes Postman
  • 2ª semana - CRUD de categorias e 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

Tecnologias utilizadas

Laravel 8, MySql e PHP 7.3.5.

Versão em Symfony

Versão em Symfony

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 - Rodar as migrations

php artisan migrate

5 - Rodar seeder para criar usuário teste

php artisan db:seed --class=AdminUserSeeder

5 - Subir o servidor

php artisan serve

Padrão

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

URL Base

https://challenge-alura-back-end-5-laravel-gi71.vercel.app/api/

Rotas

Autenticação

Método Rota Descrição BODY PARAMS QUERY PARAMS
POST /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.

Cabeçalhos

Todas as rotas devem receber os cabeçalhos:

Cabeçalho Valor
Accept application/json

1 Categorias

1.1 Retornar categorias

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

Video

1.2 Retornar uma categoria

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

Video

1.3 Cadastrar uma categoria

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

Video

1.4 Atualizar uma categoria

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

Video

1.5 Deletar uma categoria

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

Video

2 Videos

2.1 Retornar videos

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

Video

2.2 Retornar um video

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

Video

2.3 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"
}
-
2.3.1 Campos
Nome Tipo Descrição
titulo string Obrigatório
descricao string Obrigatório
url string Obrigatório
categorias_id int Opcional

Video

2.4 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"
}
-
2.4.1 Campos
Nome Tipo Descrição
titulo string Obrigatório
descricao string Obrigatório
url string Obrigatório
categorias_id int Opcional

Video

2.5 Deletar um video

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

Video

2.6 Retornar vídeos por categoria

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

Video

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

Contributors

danipoletto avatar

Stargazers

 avatar  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.