1. Gerando template
MinimalAPI é uma estrutura nova de requisição para API REST introduzida no .NET 8 que nos auxilia a criar API RESTs mais rápido utilizando uma implementação simples mas eficiente.
Essa nova estrutura ajuda a construir mais rapidamente APIs REST em .NET para uma arquitetura em Microserviços, diminuindo a necessidade de uma estrutura mais robusta para processos simples.
Criando pelo Terminal
-
Cheque a versão do seu .NET com o seguinte comando:
Verificando versão no Terminal dotnet --version -
Rode o seguinte comando no seu terminal:
Criando um projeto MinimalAPI template dotnet new web -n MinimalProject -
Acesse o seu novo template criado:
Acessando diretório do projeto cd MinimalProject
Criando pelo Visual Studio 2022
- Inicie o Visual Studio sem vinculo a um projeto, clique em
Create a new project
- Selecione a opção de projeto
ASP.NET Core Empty
- Configure o nome do seu projeto e o nome da solution
- Defina a versão do .NET, preferencialmente da versão 8 ou maior
- Ele vai criar automaticamente e vai mostrar a
home pagee seus arquivos a direita
Organização dos arquivos
O comando dotnet new web irá criar um projeto template com uma rota de exemplo, sendo definida no arquivo Program.cs
Dentro do diretório terá a seguinte estrutura:
DirectoryProperties/
- launchSettings.json
Directoryobj/
- …
- Program.cs
- MinimalProject.csproj
- appsettings.Development.json
- appsettings.json
Um pouco de informação de cada arquivo:
- properties/launchSettings.json → Utilizado no .NET Core para configurar como o projeto será iniciado durante o desenvolvimento (quando rodamos o projeto no Visual Studio ou pelo comando
dotnet runpelo terminal. - obj/ → É um diretório gerado automaticamente pelo .NET durante o processo de compilação do projeto (
dotnet build). Ele guarda arquivos temporários usados pelo compilador, serve como um cache para acelerar builds futuros. Deve ser ignorado pelo.gitignorepara evitar de ser enviado para o repositório externo, pode ser deletado também porque ele é recriado sempre que rodar um build. - Program.cs → Este é o arquivo ponto de entrada de um projeto .NET, é onde a aplicação começa a rodar. Neste arquivo é definido como a aplicação será inicializada e todos os métodos e comandos para utilizarmos nosso projeto.
- MinimalProject.csproj → Arquivos
*.csprojé um arquivo XML que diz para o .NET quais arquivos fazem parte do projeto, Lista os pacotes NuGet usados (dependencias externas), Define o tipo de projeto e possui as configurações de Build, versão .NET, diretórios, etc. - appSettings.json → Este arquivo é usado para armazenar configurações da aplicação, como strings de conexão, chaves de API, configurações de Logging e muito mais. Podemos definir configurações diferentes para cada ambiente de desenvolvimento que temos (Prod, Dev, Testing, entre outros) assim evita de utilizar as mesmas configurações em ambientes de teste e os de produção.
Código padrão inicial
Temos os seguintes códigos templates que vem junto da aplicação:
Arquivos de configuração
{ "$schema": "https://json.schemastore.org/launchsettings.json", "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:5020", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "https": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7179;http://localhost:5020", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } }}{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*"}Arquivos do .NET
var builder = WebApplication.CreateBuilder(args);var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup>
</Project>