Tesla.Adapter.Mint (tesla v1.15.3)
View SourceAdapter for mint.
NOTE: The minimum supported Elixir version for mint is 1.5.0
Remember to add {:mint, "~> 1.0"} and {:castore, "~> 0.1"} to dependencies.
Also, you need to recompile tesla after adding :mint dependency:
mix deps.clean tesla
mix deps.compile tesla
Examples
# set globally in config/config.exs
config :tesla, :adapter, Tesla.Adapter.Mint
# set per module
defmodule MyClient do
def client do
Tesla.client([], Tesla.Adapter.Mint)
end
end
# set global custom cacertfile
config :tesla, adapter: {Tesla.Adapter.Mint, cacert: ["path_to_cacert"]}Adapter specific options:
:timeout- Time in milliseconds, while process, will wait for mint messages. Defaults to2_000.:body_as- What will be returned in%Tesla.Env{}body key. Possible values -:plain,:stream,:chunks. Defaults to:plain.:plain- as binary.:stream- as stream. If you don't want to close connection (because you want to reuse it later) passclose_conn: falsein adapter opts.:chunks- as chunks. You can get response body in chunks usingTesla.Adapter.Mint.read_chunk/3function. Processing of the chunks and checking body size must be done by yourself. Example of processing function is intest/tesla/adapter/mint_test.exs-Tesla.Adapter.MintTest.read_body/4. If you don't need connection later don't forget to close it withTesla.Adapter.Mint.close/1.
:max_body- Max response body size in bytes. Works only withbody_as: :plain, with other settings you need to check response body size by yourself.:conn- Opened connection with mint. Is used for reusing mint connections.:original- Original host with port, for which reused connection was open. Needed forTesla.Middleware.FollowRedirects. Otherwise adapter will use connection for another open host.:close_conn- Close connection or not after receiving full response body. Is used for reusing mint connections. Defaults totrue.:proxy- Proxy settings. E.g.:{:http, "localhost", 8888, []},{:http, "127.0.0.1", 8888, []}:transport_opts- Keyword list of HTTP or HTTPS options passed into:gen_tcpor:sslrespectively by mint. See mint's docs ontransport_opts.
Summary
Functions
Closes mint connection.
Reads chunk of the response body.
Returns {:fin, HTTP.t(), binary()} if all body received, otherwise returns {:nofin, HTTP.t(), binary()}.
Functions
@spec close(Mint.HTTP.t()) :: {:ok, Mint.HTTP.t()}
Closes mint connection.
@spec read_chunk(Mint.HTTP.t(), reference(), keyword()) :: {:fin, Mint.HTTP.t(), binary()} | {:nofin, Mint.HTTP.t(), binary()}
Reads chunk of the response body.
Returns {:fin, HTTP.t(), binary()} if all body received, otherwise returns {:nofin, HTTP.t(), binary()}.