Questão nº 114
Questão de Tecnologia da Informação · FGV CGE-SP 2025 (nº 114)
No contexto de automação e integração via API REST em scripts Python com a biblioteca requests, uma API exige que o token de acesso seja enviado no cabeçalho HTTP Authorization usando o esquema Bearer.
A assinale a opção cujo trecho envia corretamente o token em uma requisição GET.
- Ameu_ _token = "xyz123"
x = {"Authorization": f"Bearer {meu_token}"}
y = requests.get(url, headers=x) (alternativa correta) - Bmeu_token = "xyz123"
x = {"Authorization": f"Bearer {meu_token}"}
y = requests.get(url, params=x) - Cmeu_token = "xyz123"
x = {"Authorization": meu_token}
y = requests.get(url, headers=x) - Dmeu_token = "xyz123"
x = {"access_token": meu_token}
y = requests.get(url, params=x) - Emeu_token = "xyz123"
x = {"Authentication": f"Bearer {meu_token}"}
y = requests.get(url, headers=x)
Resposta comentada
Gabarito Alternativa A
Quando uma API REST precisa verificar sua identidade para conceder acesso a dados ou funcionalidades, ela geralmente exige um token de acesso. Este token é enviado em um cabeçalho HTTP específico, chamado `Authorization`, utilizando um padrão como o esquema `Bearer`, que indica que o valor seguinte é o token de autenticação.
(A) Correta: Esta alternativa está correta porque cria um dicionário `x` onde a chave é `"Authorization"` (o nome correto do cabeçalho) e o valor é a string formatada `f"Bearer {meu_token}"`, que inclui o esquema `Bearer` seguido do token. Este dicionário é então passado para o parâmetro `headers` da função `requests.get()`, que é o local correto para enviar cabeçalhos HTTP em uma requisição.
(B) Incorreta: Esta alternativa é incorreta porque usa o parâmetro `params` em vez de `headers`. O parâmetro `params` é utilizado para enviar parâmetros de consulta (query parameters) na URL (ex: `url?chave=valor`), e não para enviar cabeçalhos HTTP. A armadilha da banca aqui é confundir o local onde os dados devem ser enviados na requisição, sendo `params` para a URL e `headers` para os cabeçalhos.
(C) Incorreta: Esta alternativa é incorreta porque, embora use o parâmetro `headers` corretamente, o valor do cabeçalho `Authorization` não inclui o esquema `Bearer`. A API exige `Bearer {token}`, e não apenas o token puro.
(D) Incorreta: Esta alternativa é incorreta por dois motivos: usa a chave `"access_token"` em vez de `"Authorization"` para o cabeçalho e, novamente, utiliza o parâmetro `params` em vez de `headers`.
(E) Incorreta: Esta alternativa é incorreta porque usa o nome de cabeçalho `"Authentication"` em vez de `"Authorization"`. O cabeçalho padrão para enviar credenciais de autenticação é `Authorization`.
Fonte: FGV CGE-SP 2025 Auditor Estadual de Controle - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.