DOTNET-api-Boilerplate
A .Net 5.0 WebApi Boilerplate / Modelo Project. Repositórios, Swagger, Mapper, Serilog e mais implementados.
O objetivo deste projeto é ser um Kickstart do seu .NET WebApi, implementando os padrões e tecnologias mais comuns para uma API RESTful no .NET, facilitando seu trabalho.
Como correr
- Use este modelo (GitHub) ou clone/download no local de trabalho local.
- Faça o download do mais recente .NET SDK e Visual Studio/Code.
Independente
- Você pode precisar de uma instância em execução do MSSQL, com as migrações apropriadas inicializadas.
- Você pode executar apenas o banco de dados no Docker. Para isso, você deve alterar sua string de conexão para "Server = 127.0.0.1; Database = Master; User = SA; Password = YourPassword123" e Execute o seguinte comando:
docker-compose up -d db-server . Fazendo isso, o aplicativo poderá alcançar o contêiner De do servidor DB. - Se desejar, você pode alterar o banco de dadosextion para usar o uso de useImMoryDatabase, em vez do MSSQL.
- Vá para a pasta SRC/Boilerplate.API e execute
dotnet run , ou, no Visual Studio, defina o projeto da API como inicialização e execute como console ou docker (não IIS). - Visite http: // localhost: 5000/api-docs ou https: // localhost: 5001/api-docs para acessar a arrogância do aplicativo.
Docker
- Execute
docker-compose up -d no diretório raiz, ou, no Visual Studio, defina o projeto Docker-Compose como inicialização e execução. Isso deve iniciar o aplicativo e o banco de dados.
- Para o Docker-Compose, você deve executar este comando na pasta root:
dotnet dev-certs https -ep https/aspnetapp.pfx -p yourpassword substitua "yourpassword" por outra coisa neste comando e no arquivo Docker-compose.override.yml. Isso cria o certificado HTTPS.
- Visite http: // localhost: 5000/api-docs ou https: // localhost: 5001/api-docs para acessar a arrogância do aplicativo.
Testes de execução
Na pasta raiz, execute dotnet test . Este comando tentará encontrar todos os projetos de teste associados ao arquivo SLN.
Este projeto contém:
- Swaggerui
- Entityframework
- Automapper
- Repositório genérico (para inicializar facilmente um repositório CRUD)
- Serilog com o registro de solicitação e pias facilmente configuráveis
- .NET Injeção de dependência
- Filtragem de recursos
- Compressão de resposta
- CI (Ações do Github)
- Testes de unidade
- Testes de integração
- Suporte de contêiner com Docker e Docker-Compose
Estrutura do projeto
- Serviços
- Esta pasta armazena suas APIs e qualquer projeto que envie dados para seus usuários.
- Boilerplate.api
- Este é o principal projeto da API. Aqui estão todos os controladores e inicialização da API que será usada.
- Docker-Compose
- Este projeto existe para permitir que você execute o Docker-Compose com o Visual Studio. Ele contém uma referência ao arquivo Docker-Compompose e criará todas as dependências dos projetos e o executará.
- Aplicativo
- Esta pasta armazena todas as transformações de dados entre sua API e sua camada de domínio. Ele também contém sua lógica de negócios.
- Domínio
- Esta pasta contém seus modelos de negócios, enumes e interfaces comuns.
- Boilerplate.Domain.core
- Contém a entidade base de todas as outras entidades de domínio, bem como a interface para a implementação do repositório.
- Boilerplate.Domain
- Contém modelos de negócios e enumes.
- Infra
- Esta pasta contém todos os repositórios de acesso a dados, contextos de banco de dados, qualquer coisa que busque dados externos.
- Boilerplate.infrastructure
- Este projeto contém o DBContext, uma implementação genérica do padrão de repositório e um repositório de herói (classe de domínio).
Adotando para o seu projeto
- Remova/renomeie todas as coisas relacionadas aos heróis para suas necessidades.
- Renomeie a solução, os projetos, os espaços para nome e o conjunto de regras para o seu uso.
- Altere o Dockerfile e o Docker-Compose.yml para seus novos nomes de pastas CSProj/.
- Dê a este repo uma estrela!
Migrações
Para executar migrações neste projeto, execute o seguinte comando na pasta raiz:
-
dotnet ef migrations add InitialCreate --startup-project .srcBoilerplate.Api --project .srcBoilerplate.Infrastructure
Este comando definirá o ponto de entrada para a migração (responsável por selecionar o dbProvider {sqlserver, mysql, etc} e a string de conexão) e o próprio projeto será a infraestrutura, onde está o DBContext.
Se você gosta, dê uma estrela
Se esse modelo foi útil para você, ou se você aprendeu alguma coisa, dê uma estrela!
Obrigado
Este projeto tem grande influência de https://github.com/lkurzyniec/netcore-boilerplate e https://github.com/eduardopires/equinoxProject. Se você tiver tempo, visite esses repositórios e dê -lhes uma estrela também!
Sobre
Este caldeira/modelo foi desenvolvido pela Yan Pitangui sob licença do MIT.