Giter VIP home page Giter VIP logo

technical-test-entry-level_course-luisdev-career_dotnet-8.0_csharp-12's Introduction

Teste técnico - nível Júnior

Neste desafio, você será responsável por criar uma API RESTful para uma lista de empregos. A API permitirá que os usuários visualizem, criem, atualizem e excluam anúncios de emprego.

Endpoints

  • GET /jobs: retorna uma lista de todos os anúncios de emprego disponíveis;
  • GET /jobs/{id}: retorna um único anúncio de emprego com o ID correspondente;
  • POST /jobs: cria um novo anúncio de emprego;
  • PUT /jobs/{id}: atualiza um anúncio de emprego existente com o ID correspondente;
  • DELETE /jobs/{id}: exclui um anúncio de emprego existente com o ID correspondente;

As entidades e seus atributos

  • Job;
    • Id: int (gerado automaticamente pelo servidor);
    • Title: string (título do anúncio de emprego);
    • Description: string (descrição do anúncio de emprego);
    • Location: string (localização do trabalho);
    • Salary: decimal (salário oferecido);

Requisitos

  • [RN1] A API deve ser desenvolvida usando ASP.NET Core;
  • [RN2] Deve-se usar o banco de dados InMemory com Entity Framework Core;
  • [RN3] Deve suportar as operações CRUD básicas (Create, Read, Update, Delete);
  • [RN4] A API deve retornar respostas HTTP apropriadas (ex: 200 OK, 404 Not Found, 400 Bad Request, etc.);
  • [RN5] Os dados enviados e recebidos pela API devem ser formatados como JSON;

Passo a Passo da Resolução

  1. Criar as Actions do Controller e testar todas para garantir que estejam funcionando. Retornar NoContent para PUT e DELETE, e OK para todas as outras

  2. Implementar entidade do domínio

  3. Atualizar Actions do Controller com entidade do domínio (POST e PUT recebendo como parâmetro, e POST retornando CreatedAtAction) - BUILD

  4. Adicionar Microsoft.EntityFrameworkCore.InMemory, criar DbContext, e configurar na Program.cs

  5. Adicionar instância do DbContext no Controller, e usar ele em todas as operações com a sintaxe LINQ

  6. Testar e garantir que funciona em memória.

[OPCIONAL] 7. Adicionar configuração de connection string do Banco de Dados no appsettings.json, atualizar configuração no Program.cs, e gerar as migrations com:

Utilizei o Docker para o banco:

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Admin@123" -e "MSSQL_PID=Evaluation" -p 1433:1433  --name sqlserver --hostname sqlserver -d mcr.microsoft.com/mssql/server:2022-preview-ubuntu-22.04
dotnet ef migrations add Initial -o Persistence/Migrations
dotnet ef database update
  1. Testar novamente

technical-test-entry-level_course-luisdev-career_dotnet-8.0_csharp-12's People

Contributors

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