Neste post mostro como extrair valores do header, quando sua controller receber uma requisição.
Enquanto estiver no escopo do método da controller, você consegue acessar uma variável chamada Request (pelo menos no dotnet core 3.1). Ela possui os dados da requisição, incluindo os headers.
Considere o método abaixo:
public async Task<IActionResult> Get([FromQuery] DateTimeRange dateTimeRange) { return Ok(await _service.GetByDateRange(dateTimeRange)); }
Vamos supor que você qeur extrair o valor de um header chamado “x-requester-id”. Para isso, você pode:
var userCode = Request.Headers["x-requester-id"];
Este comando vai retornar uma variável do tipo StringValue contendo o valor que foi enviado. Todavia, se esta chave não existir no header, uma exception será lançada.
Uma forma de extrair estes valores de forma mais controlada seria:
var exists = Request.Headers.TryGetValue("x-requester-id", out var value);
Desta forma, se exists for false, então o valor não existe nos headers.
Existem outras duas propriedades do Headers que podem te ajudar a ver/extrair dados:
- Request.Headers.Keys: Retorna uma lista (ICollection<string>) com as chaves que estão disponíveis no header;
- Request.Headers.Values: Retorna uma lista (ICollection<string>) com valores que estão disponíveis no header;
Os valores das duas propriedades acima são alinhados, ou sjea, se o primeiro valor de Keys corresponde ao primeiro valor de Values.
Espero ter ajudado.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022