Percebi na aula que o uso houve alteração no program.cs
De:
builder.Services.AddTransient<ArtistasAPI>();
para:
builder.Services.AddScope<ArtistasAPI>();
algum motivo especifico?
Resposta do ChatGPT:
A principal diferença entre AddScoped e AddTransient está relacionada ao tempo de vida da instância do serviço injetado na aplicação.
1. AddScoped<ArtistasAPI>()
Escopo de vida: Uma instância do serviço é criada uma vez por solicitação (request).
Comportamento: Dentro de uma única requisição HTTP, o mesmo objeto será utilizado em todas as partes que o solicitarem. Isso é útil quando você deseja manter algum estado ou compartilhar informações entre diferentes partes do sistema durante uma requisição.
Exemplo de uso: Serviços que dependem do contexto da requisição ou que devem manter dados temporários durante toda a execução de uma requisição HTTP, como um repositório ou transação de banco de dados.
2. AddTransient<ArtistasAPI>()
Escopo de vida: Uma nova instância do serviço é criada sempre que ele é solicitado.
Comportamento: Toda vez que o serviço for injetado em uma classe, uma nova instância dele será criada. Isso é útil quando o serviço é leve e não precisa manter estado entre as chamadas.
Exemplo de uso: Serviços que não mantêm estado e que são usados para operações rápidas, como classes utilitárias ou serviços que fazem operações únicas.
Resumo:
AddScoped: A instância do serviço é compartilhada durante uma requisição.
AddTransient: Uma nova instância do serviço é criada sempre que for solicitada.
O uso correto depende da necessidade de compartilhar instâncias ou não, e da natureza do serviço em questão.
pelo que entendi, para persistir a autenticação, mantendo o estado de autenticação, é isso?
Só não percebi em que dado momento isso foi alterado em aula...