Este projeto ASP NET Core 6 se trata de uma api e teste feita com EF Core e MySql Ela demonstra a criação e implantação da API no Azure como um Serviço de aplicativo utilizando o plano gratuito de requisições com 60 min por dia de recursos. O banco de dados é em MySql e está hospedado em um outro servidor gratuito smarterasp.net
- Template do ASP NET Core Web Application
- Visual Studio 2022
- Pacotes
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.Design
- Pomelo.EntityFrameworkCore.MySql
- Microsoft.EntityFrameworkCore.Tools
- Microsoft.VisualStudio.Azure.Containers.Tools.Targets
- Microsoft.VisualStudio.Azure.Containers.Tools.Targets
- Microsoft.VisualStudio.Web.CodeGeneration.Design
- Swashbuckle.AspNetCore
- MySql 8
- Trabalhando com Migration
- Documentação com Swagger
Obs.: 30 min de prática.
1. Criar projeto API Web do ASP.NET Core
-
Instalar pacotes
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.Design
- Pomelo.EntityFrameworkCore.MySql
- Microsoft.EntityFrameworkCore.Tools
- Microsoft.VisualStudio.Azure.Containers.Tools.Targets
- Microsoft.VisualStudio.Azure.Containers.Tools.Targets
- Microsoft.VisualStudio.Web.CodeGeneration.Design
-
Criar classe Estado na pasta models
public class Estado
{
[Key]
[StringLength(2,MinimumLength =2, ErrorMessage ="O campo sigla deve conter 2 caracteres")]
public string Sigla { get; set; }
[Required(ErrorMessage ="O campo nome é obrigatório")]
[StringLength(200, MinimumLength = 3, ErrorMessage = "O campo nome deve conter entre 3 e 200 caracteres.")]
public string Nome { get; set; }
}
- Criar classe de contexto na pastas Data
public class ApiDbContext : DbContext
{
public ApiDbContext(DbContextOptions<ApiDbContext> options) : base(options)
{
}
public DbSet<Estado> Estados { get; set; }
}
- Configurar connection string no appsettings.json
"ConnectionStrings": {
"Conexao": "Server=MYSQL8002.site4now.net;Database=db_a87b2f_test1;Uid=a87b2f_test1;Pwd=SENHA"
}
-
Criar controller viar Novo Item com Scaffolding
-
Tipo Controlador de API com ações usando EntityFramework
- Selecione Classe do Modelo
- Selecione Classe DbContext
- selecione Nome do controlador
-
No Program.cs adicione (Configurando o DbContext)
// Add services to the container.
var connectionStringMySql = builder.Configuration.GetConnectionString("Conexao");
builder.Services.AddDbContext<ApiDbContext>(options =>
{
options.UseMySql(
connectionStringMySql,
ServerVersion.Parse("8.0.29"));
});
-
Compile a solução
-
Acessar o Console do Gerenciador de pacotes
-
Executar os comandos para criar a migração:
-
add-migration inicial
-
update-database
-
Acessar o portal azure https://portal.azure.com/#create/hub
-
Selecionar criar Aplicativo Web
- Criar grupo de recursos
- Nome
- Publicar: código
- Pilha de runtime: .NEt 6
- Sistema Operacional: Linux
- Região Brazil South
- Plano de preços: Gratuito F1 (Infraestrutura compartilhada)
-
Cria o recursos
-
Após a criação acesse Centro de Implantação, e configure o repositório GitHub Ele irá criar o arquivo de deploy CI/CD no branch mais
-
Todos os commits na branch main iram disparar o deploy