Giter Club home page Giter Club logo

challenge-backend-5's Introduction

Challenge Back-end Alura

O que foi proposto no desafio:

  1. API com rotas implementadas segundo o padrão REST
  2. Validações feitas conforme as regras de negócio
  3. Implementação de base de dado para persistência das informações
  4. Serviço de autenticação para acesso às rotas

Tempo para desenvolvimento do projeto 4 semanas

challenge-backend-5's People

Contributors

dev-anderson avatar

Watchers

James Cloos avatar  avatar

challenge-backend-5's Issues

GET

Atender uma requisição GET que retorne uma única categoria caso o ID do seja válido, com o seguinte endpoint:
/categorias/1/

Caso a categoria não esteja cadastrada, retornar uma mensagem de Não encontrado

Busca de vídeos

Buscar vídeos por título
Criar uma rota que busque vídeos por nome via query parameters, por exemplo:
GET /videos/?search=jogos

Banco de dados

Banco de dados

Armazenar no banco de dados as seguintes informações

  • id
  • titulo
  • descricao
  • url

Utilizar um ORM para facilitar na criação dos campos, pode ser utilizado qualquer banco de dados.

Deploy

Coloque a API em produção, em algum provedor de cloud de sua escolha, como:

  • Heroku
  • Vercel
  • AWS

Autenticação

Para garantir a segurança dos dados, implemente algum tipo de autenticação, para que só os usuários autenticados possam acessar as rotas de GET, POST, PUT e DELETE.

  • Caso a autenticação não seja válida, retornar uma mensagem informando Não autorizado ou Credenciais inválidas.
  • Caso usuário e senha inválido, informar Usuário e senha inválido

Requisição para criar um novo vídeo

POST

Atender uma requisição POST que crie um novo vídeo, caso todos os campos estejam preenchidos e validados.

Retornar um JSON com informações do vídeo criado.

Testes

Testes de unidade e testes de Integração
Criar testes de unidade para os modelos e controller.
Crie testes de integração.

Requisição que exiba um único vídeo

GET

Atender uma requisição GET que retorne um único vídeo, caso o ID do vídeo seja valido, com o seguinte endpoint:
/videos/1

Caso o vídeo não esteja cadastrado, retornar uma mensagem de Não encontrado

Regra de negócio - Categoria livre

Filmes sem categoria definida
A categoria com ID = 1, deve chamar LIVRE e caso ela não seja especificada na criação do vídeo, vamos atribuir o ID = 1.

Regra de negócio - Paginação

Adicione nas repquisições GET em ambos os modelos, tanto videos como categoria uma paginação que retorne 5 itens por página. Por exemplo:
get /videos/?page=2

banco de dados

banco de dados
armazenar no banco de dados as seguintes informações sobre categorias:

  • id
  • titulo
  • cor

Requisição para criar uma nova categoria

POST

Atender uma requisição POST que crie uma nova categoria, caso todos os campos estejam preenchidos e validados.

Retornar um JSON com informações da categoria criada.

Agrupar vídeos e categorias

Implemente uma relação entre vídeos e categorias, atribuindo para cada vídeo uma categoria:

{
"videos":
{
"id": 1,
"categoriaId": 1,
"titulo": "Título do vídeo",
"descricao": "Descrição do vídeo 1",
"url": "https://www.url.com.br/"
}
}

GET

GET

Atender uma requisição GET que exiba todas as categorias com o seguinte endpoint:
/categorias/

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.