Skip to content

Refactoring usages of http.client #454

Open
@Alex-CD

Description

@Alex-CD

Hey :)

So a few places depend on Go's built-in http.client directly, or indirectly (through httpclient.go).
My thought was that it could be an improvement to work towards injecting http.client as a dependency - this would decouple several functions away from it, improving their testability.

As an initial first step, I could make a change that:

  • Refactors httpclient.SendRequest to accept a *http.client parameter.
  • In usages of httpclient.SendRequest, have them construct a *http.client to inject using httpClient.GetHttpClient
  • Create some unit tests for httpclient.SendRequest.

Of course, usages http.SendRequest would still depend indirectly on http.client ( via httpClient.GetHttpClient), but this would get us a foot in the door regarding doing more dependency injection elsewhere.
I've seen some other issues that discuss how heavily coupled some functions are, and I believe dependency injection could help us improve some of those tight coupling problems

This would be my first open source contribution in a while, and my first Go work in a few years, so your thoughts are especially welcome here :)

My team have also been making heavy use of this tool for a while and it's been really helpful, so thank you! ❤️

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions