Is your feature request related to a problem? Please describe.
While thinking about this problem for another platform we maintain, I came across event_hooks in httpx.
We should make this configurable for the gallagher clients in case the user wants to add observability or logging for their implementation.
I don't believe the library should bother implementing the logging as a solution, it can provide reference implementations but not a solution.
Describe the solution you'd like
Modify the API so the developer can pass hooks into the initialisation which are called by the httpx layer upon requests placed and responses received.
In the case of httpx these work as interceptors where the developer can add additional headers etc.
Note that we will have to find a reliable mechanism to identify requests so we can perform operations like logging the body against other metadata, see also #2
Describe alternatives you've considered
NA
Additional context
For example the OpenAI python client allows you to pass in a configured httpx client
import httpx
client = openai.OpenAI(
http_client=httpx.Client(
event_hooks={
"request": [print],
"response": [print]
}
)
)
we could follow a similar pattern and allow the developer to configure their gallagher API client and let them handle the result of the request and responses
Is your feature request related to a problem? Please describe.
While thinking about this problem for another platform we maintain, I came across event_hooks in
httpx.We should make this configurable for the
gallagherclients in case the user wants to add observability orloggingfor their implementation.I don't believe the library should bother implementing the logging as a solution, it can provide reference implementations but not a solution.
Describe the solution you'd like
Modify the API so the developer can pass hooks into the initialisation which are called by the
httpxlayer upon requests placed and responses received.In the case of
httpxthese work as interceptors where the developer can add additional headers etc.Note that we will have to find a reliable mechanism to identify requests so we can perform operations like logging the body against other metadata, see also #2
Describe alternatives you've considered
NA
Additional context
For example the OpenAI python client allows you to pass in a configured
httpxclientwe could follow a similar pattern and allow the developer to configure their
gallagherAPI client and let them handle the result of therequestandresponses