Tesla
The flexible HTTP client library for Elixir
...All HTTP functions, such as Tesla.get/3 and Tesla.post/4, can take a dynamic client as the first argument. This allows using convenient syntax for modifying the behavior in runtime. Tesla supports multiple HTTP adapter that do the actual HTTP request processing. Each piece of the stream will be encoded as JSON and sent as a new line (conforming to JSON stream format). You can set the adapter to Tesla.Mock in tests.