Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Uso de

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...

1 resposta
solução!

Oi Marcelo! Tudo bem?

A principal diferença entre AddScoped e AddTransient está relacionada ao tempo de vida das instâncias dos serviços injetados na aplicação, como você já deve ter percebido pela resposta anterior.

A alteração de AddTransient<ArtistasAPI>() para AddScoped<ArtistasAPI>() pode ter sido feita para garantir que a mesma instância do serviço ArtistasAPI seja usada durante toda a requisição. Isso pode ser importante, por exemplo, para:

  • Manter o estado de autenticação durante a requisição.
  • Garantir que as operações realizadas pelo serviço compartilhem o mesmo contexto, como transações de banco de dados.

Agora sobre o momento da alteração, realmente não está em alguma atividade, então entrarei em contato com o pessoal responsável pelo material para pedindo que analisem essa situação.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.