Este repositório contém o código-fonte de uma Web API desenvolvida como parte de um desafio criado pelo André Baltieri (balta.io). A API foi construída usando ASP.NET Core 7 e possui funcionalidades de gerenciamento de localizações e autenticação de usuários.
A Web API oferece as seguintes funcionalidades:
- Registro de usuários.
- Autenticação de usuários.
- Gerenciamento de localizações por estado, cidade e código.
- Criação, atualização e exclusão de localizações.
- Tratamento de erros e validações.
Antes de iniciar o projeto, certifique-se de atender aos seguintes requisitos:
- Visual Studio ou Visual Studio Code.
- .NET Core SDK instalado.
- Um banco de dados compatível (MySQL) configurado.
- Pacotes e dependências listados no arquivo
.csprojinstalados.
Siga as etapas abaixo para configurar e executar o projeto:
-
Clone este repositório:
git clone https://github.com/yThiagoFS/balta.io_challenge.git
-
Acesse a pasta do projeto:
cd BaltaIoChallenge.WebApi -
Configure a conexão com o banco de dados no arquivo
appsettings.json. -
Execute o seguinte comando para aplicar as migrações e criar o banco de dados:
dotnet ef database update
-
Inicie o projeto:
dotnet run
A API estará disponível em https://localhost:7247.
A API possui as seguintes rotas:
POST /api/v1/auth/register: Registra um novo usuário.POST /api/v1/auth/login: Autentica um usuário e gera um token de acesso.GET /api/v1/localization/getByState?state={state}: Obtém localizações por estado.GET /api/v1/localization/getByCity?city={city}: Obtém localizações por cidade.GET /api/v1/localization/getById/{id}: Obtém uma localização por código.POST /api/v1/localization: Cria uma nova localização (requer autenticação).PUT /api/v1/localization/updateById/{id}: Atualiza uma localização existente (requer autenticação).DELETE /api/v1/localization/deleteById/{id}: Exclui uma localização existente (requer autenticação).
Lembre-se de autenticar-se antes de usar as rotas protegidas.
Se deseja contribuir para este projeto, sinta-se à vontade para criar um pull request ou abrir uma issue.
Não se esqueça de deixar uma estrelinha no repositório :)
© 2023 Thiago Ferreira