<< Click to Display Table of Contents >> Rotas usando classes e post com json |
![]() ![]() ![]() |
Crie um novo projeto "ASP.NET Core Empty"
Program.cs
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.Use(async (context, next) =>
{
await next(context);
// entra na 404 tambem quando mostra/nome/idade = idade não inteira
if (context.Response.StatusCode == 404)
{
await context.Response.WriteAsync("404-Pagina nao localizada");
}
// quando não passa o nome e senha no json para o GetToken
if (context.Response.StatusCode == 400)
{
await context.Response.WriteAsync("400-Faltam informações");
}
});
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.MapPost("/token", MinhaClasse.GetToken);
app.MapGet("/mostrar/{nome}/{idade:int}", MinhaClasse.MostrarNomeIdade);
app.Run();
Usuario.cs
using System.ComponentModel.DataAnnotations;
using System.Text.Json;
public class Usuario
{
public int Id { get; set; }
[Required]
public string Nome { get; set; }
[Required]
public string Senha { get; set; }
public string Email { get; set; }
public Usuario()
{
this.Id = 0;
this.Nome = string.Empty;
this.Senha = string.Empty;
this.Email = string.Empty;
}
public string ToJson()
{
return JsonSerializer.Serialize(this);
}
}
MinhaClasse.cs
public static class MinhaClasse
{
public static async Task GetToken(HttpContext context)
{
var usuario = await context.Request.ReadFromJsonAsync<Usuario>() ?? new Usuario();
if (!string.IsNullOrEmpty(usuario.Nome) && !string.IsNullOrEmpty(usuario.Senha))
{
if (usuario.Senha != "123")
{
context.Response.StatusCode = 401;
await context.Response.WriteAsync("senha incorreta");
}
else
{
usuario.Email = "junior@market.com.br";
usuario.Id = 10;
await context.Response.WriteAsync(usuario.ToJson());
}
}
context.Response.StatusCode = 400;
}
public static async Task MostrarNomeIdade(HttpContext context)
{
await context.Response.WriteAsync($"Nome: {context.GetRouteValue("nome")} idade: {context.GetRouteValue("idade")}");
}
}