Tutoriais

Adicionando versionamento a API

Para habilitar versionamento na API, você deve utilizar o método AddVersioning(). O parâmetro configuration deve ser alimentado com o campo _configuration disponível no Startup.

Os parâmetros versioningSetupAction e mvcSetupAction são opcionais, e servem para configurar opções internas da biblioteca aspnet-api-versioning.

Warning

No caso de configurações customizadas, o SDK não aplicará nenhuma configuração nos tipos AspApiVersioningOptions e MvcApiVersioningOptions.

Além de adicionar a biblioteca de versionamento, é necessário anotar todas controllers com as versões suportadas com o atributo ApiVersion.

[ApiVersion(2023.3)]
[ApiVersion(2023.2)]
[ApiVersion(2023.1)]
public class CitiesController: BaseController
{
}

Recuperando informações AmbientData

Todas as informações AmbientData estão centralizadas no serviço IAmbientData.

Declare uma variável do tipo IAmbientData

private readonly IAmbientData _ambientData;

E injete no seu construtor.

Utilize as seguintes funções para recuperar o dado

AmbientData

Função

TenantId

GetTenantId()

UserId

GetUserId()

CompanyId

GetCompanyId()

EnvironmentId

GetEnvironmentIdOrThrow()

LegacyCompanyId

GetLegacyCompanyId()

NotificationUpdateId

GetNotificationUpdateId()

ApiVersion

GetApiVersion()

Adicionando AutoMapper em testes unitários

Declare a função AddServices na sua classe de teste unitário e faça uma chamada para AddAutoMapper.

protected override void AddServices()
{
  ServiceCollection.AddAutoMapper();
  base.AddServices();
}

O parâmetro assembliesToAdd é opcional porém recomendado. Nele você deverá passar em qual(is) assembly estão os Profiles do AutoMapper

protected override void AddServices()
{
  ServiceCollection.AddAutoMapper(new[] { typeof(CityMapperProfile).Assembly });
  base.AddServices();
}

Para utilizar uma instância de IMapper, utilize o método GetService do ServiceProvider

var mapper = ServiceProvider.GetService<IMapper>();

Aumentando o tempo de timeout de queries

Para aumentar o timeout de timeout das queries do EF Core, adicione a propriedade DbContextOptions:CommandTimeout ao Consul. Essa configuração é expressa em segundos, e seu valor padrão quando não informado é 30.

"DbContextOptions": {
  "CommandTimeout": 10
}

Habilitando log de parâmetros de queries

Para habilitar o log de parâmetros de queries do EF Core, adicione a propriedade DbContextOptions:EnableSensitiveDataLogging ao Consul. Seu valor padrão quando não informado é false.

"DbContextOptions": {
  "EnableSensitiveDataLogging": true
}

Habilitando log detalhado de erros do EF Core

Para habilitar o log detalhados de erros do EF Core, adicione a propriedade DbContextOptions:EnableDetailedErrors ao Consul. Seu valor padrão quando não informado é false.

"DbContextOptions": {
  "EnableDetailedErrors": true
}

Configurando o grau máximo de paralelismo no ServiceBus

Para configurar o grau máximo de paralelismo no ServiceBus, adicione a propriedade ServiceBus:MaxParallelism ao Consul. Seu valor padrão quando não informado é 5.

"ServiceBus": {
  "MaxParallelism": 3
}

Configurando o número de threads no ServiceBus

Para configurar o número de threads no ServiceBus, adicione a propriedade ServiceBus:NumberOfWorkers ao Consul. Seu valor padrão quando não informado é 1.

"ServiceBus": {
  "NumberOfWorkers": 1
}

Configurando o número máximo de tentativas para mensagens que falham no ServiceBus

Para configurar o número máximo de tentativas para mensagens que falham no ServiceBus, adicione a propriedade ServiceBus:MaxDeliveryAttempts ao Consul. Seu valor padrão quando não informado é 3.

"ServiceBus": {
  "MaxDeliveryAttempts": 7
}

Configurando o PrefetchSize no ServiceBus

Para configurar o PrefetchSize no ServiceBus, adicione a propriedade ServiceBus:PrefetchSize ao Consul. Seu valor padrão quando não informado é 50.

"ServiceBus": {
  "Transport": {
    "PrefetchSize": 100
  }
}