Liberar consumo de API C#

Apesar de parecer simples liberar API para uso no visual studio, no meu caso sempre veio com algum problema que fizesse com que desse erro nas requisições pelo postman, dispositivo móvel ou por algum projeto.
Dito isso, eu fiquei quebrando cabeça pra r…


This content originally appeared on DEV Community and was authored by Nathan Silva

Apesar de parecer simples liberar API para uso no visual studio, no meu caso sempre veio com algum problema que fizesse com que desse erro nas requisições pelo postman, dispositivo móvel ou por algum projeto.
Dito isso, eu fiquei quebrando cabeça pra resolver e abaixo eu listei algumas coisas que podem resolver esse problema.

CORS #1

A primeira coisa a ser feita é liberar o CORS(lá ele), mas antes vamos entender o que é e como funciona.

O que é?

CORS significa Cross-Origin Resource Sharing que consiste em um mecanismo que permite aplicações web façam requisições para um servidor em outro domínio além da aplicação que está hospedada.

Como funciona?

Em resumo, o CORS funciona como um validador de origem, afim de garantir segurança do usuário.

Algumas configurações

  • Access-Control-Allow-Origin: Especifica quais origens podem acessar os recursos.
  • Access-Control-Allow-Methods: Especifica quais métodos HTTP (GET, POST, etc.) são permitidos para a requisição.
  • Access-Control-Allow-Headers: Especifica quais cabeçalhos HTTP podem ser usados na requisição.
  • Access-Control-Allow-Credentials: Indica se os cookies e credenciais HTTP podem ser incluídos na requisição (usado em requisições com credenciais, como cookies de autenticação).

Resolução

No arquivo program.cs da API no visual Studio larga o seguinte código, só confere antes se você já não tinha adicionado algo antes:

`var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();
https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseCors("AllowAll");
app.UseAuthorization();
app.MapControllers();
app.Run();
`

Kestrel #2

Antes de fazer este passo recomendo que faça o passo anterior e teste

O que é?

Kestrel é um servidor integrado fornecido pelo ASP.NET Core e responsável por processar as requisições HTTP.

Como funciona?

Este servidor funciona otimizando e organizando as requisições que são feitas, a partir das configurações de porta, Ip e certificados SSL. Além disso, é importante que destacar que é multiplataforma.

Resolução

A configuração abaixo deve ser feita dentro do arquivo appsettings.json, sendo HTTP e/ou HTTPs. Lembrando que a porta vai alterar de acordo com o que você usa.

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:5111"
},
"Https": {
"Url": "https://0.0.0.0:5001",
"Certificate": {
"Path": "certificate.pfx",
"Password": "password"
}
}
}
}
}

Liberando portas no firewall

Siga os prints abaixo. Lembrando que faremos isso pra entrada e para saida.

Entrada

Image description

Image description

Image description

Image description

Image description

Saída

Image description

Image description

Image description

Image description


This content originally appeared on DEV Community and was authored by Nathan Silva


Print Share Comment Cite Upload Translate Updates
APA

Nathan Silva | Sciencx (2024-07-09T23:55:22+00:00) Liberar consumo de API C#. Retrieved from https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/

MLA
" » Liberar consumo de API C#." Nathan Silva | Sciencx - Tuesday July 9, 2024, https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/
HARVARD
Nathan Silva | Sciencx Tuesday July 9, 2024 » Liberar consumo de API C#., viewed ,<https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/>
VANCOUVER
Nathan Silva | Sciencx - » Liberar consumo de API C#. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/
CHICAGO
" » Liberar consumo de API C#." Nathan Silva | Sciencx - Accessed . https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/
IEEE
" » Liberar consumo de API C#." Nathan Silva | Sciencx [Online]. Available: https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/. [Accessed: ]
rf:citation
» Liberar consumo de API C# | Nathan Silva | Sciencx | https://www.scien.cx/2024/07/09/liberar-consumo-de-api-c/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.