aws / aws/bedrock-agentcore-sdk-python
Processing Request Headers
- Langage dominant
- Python
- Étoiles
- 761
- Forks
- 147
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 7
Description
**Is your feature request related to a problem? Please describe.**
When handling invocation requests, I need a reliable mechanism to parse specific headers and pass them to the handler function. I have not found a recommended approach for achieving this within the current framework. While I can implement a Starlette middleware to populate `request.state`, this state is not accessible within my handler.
Could you please advise on the best practice for accomplishing this?
**Describe the solution you'd like**
I would like to have the ability to pass `request.state` (or a similar context containing parsed headers) directly to the handler function. I have included a relevant code snippet below to illustrate the change that would address this need.
**Describe alternatives you've considered**
- Overriding the internal `_build_request_context` method, although I am hesitant to do so since it is not intended for external use.
- Adding an additional route via `app.routes.append`, but this approach requires rewriting significant portions of the existing `_handle_invocation` logic, which is not ideal.
**Additional context**
Please see the code snippet below for reference:
```
async def _invoke_handler(self, handler, request_context, takes_context, payload):
try:
args = (payload, request_context) if takes_context else (payload,)
if asyncio.iscoroutinefunction(handler):
return await handler(*args)
else:
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, handler, *args)
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par lire les chemins internes _build_request_context et _handle_invocation, puis comparez-les à la signature _invoke_handler proposée dans l’issue. Déterminez comment les en-têtes de requête analysés et request.state sont actuellement représentés, et si le contexte de handler demandé s’intègre au framework. Le travail sera considéré comme terminé lorsqu’une approche approuvée par un maintainer, avec un comportement clair et une couverture pour les handlers d’invocation, sera définie.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- api, backend
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 28/100