# tesla v1.17.0 - Table of Contents HTTP client library, with support for middleware and multiple adapters. ## GUIDES - [Tesla](readme.md) - [License](license.md) - Explanations - [Client](0-client.md) - [Testing](1-testing.md) - [Middleware](2-middleware.md) - [Adapter](3-adapter.md) - Cheatsheets - [Basic Cheat Sheet](general.md) - How-To's - [Migrate from v0 to v1](v0-to-v1.md) - [Migrate away from v1 Macro](v1-macro-migration.md) - [Test Using Mox](test-using-mox.md) ## Modules - [Tesla](Tesla.md): A HTTP toolkit for building API clients using middlewares. - [Tesla.Client](Tesla.Client.md) - [Tesla.Env](Tesla.Env.md): This module defines a `t:Tesla.Env.t/0` struct that stores all data related to request/response. - [Tesla.Mock](Tesla.Mock.md): Mock adapter for better testing. - [Tesla.Multipart](Tesla.Multipart.md): Multipart functionality. - [Tesla.Multipart.Part](Tesla.Multipart.Part.md) - [Tesla.Test](Tesla.Test.md): Provides utilities for testing Tesla-based HTTP clients. - Behaviours - [Tesla.Adapter](Tesla.Adapter.md): The adapter specification. - [Tesla.Middleware](Tesla.Middleware.md): The middleware specification. - Adapters - [Tesla.Adapter.Finch](Tesla.Adapter.Finch.md): Adapter for [finch](https://github.com/sneako/finch). - [Tesla.Adapter.Gun](Tesla.Adapter.Gun.md): Adapter for [gun](https://github.com/ninenines/gun). - [Tesla.Adapter.Hackney](Tesla.Adapter.Hackney.md): Adapter for [hackney](https://github.com/benoitc/hackney). - [Tesla.Adapter.Httpc](Tesla.Adapter.Httpc.md): Adapter for [httpc](http://erlang.org/doc/man/httpc.html). - [Tesla.Adapter.Ibrowse](Tesla.Adapter.Ibrowse.md): Adapter for [ibrowse](https://github.com/cmullaparthi/ibrowse). - [Tesla.Adapter.Mint](Tesla.Adapter.Mint.md): Adapter for [mint](https://github.com/elixir-mint/mint). - Middlewares - [Tesla.Middleware.BaseUrl](Tesla.Middleware.BaseUrl.md): Set base URL for all requests. - [Tesla.Middleware.BasicAuth](Tesla.Middleware.BasicAuth.md): Basic authentication middleware. - [Tesla.Middleware.BearerAuth](Tesla.Middleware.BearerAuth.md): Bearer authentication middleware. - [Tesla.Middleware.CompressRequest](Tesla.Middleware.CompressRequest.md): Only compress request. - [Tesla.Middleware.Compression](Tesla.Middleware.Compression.md): Compress requests and decompress responses. - [Tesla.Middleware.DecodeFormUrlencoded](Tesla.Middleware.DecodeFormUrlencoded.md) - [Tesla.Middleware.DecodeJson](Tesla.Middleware.DecodeJson.md): Decodes response body as JSON. - [Tesla.Middleware.DecodeMessagePack](Tesla.Middleware.DecodeMessagePack.md) - [Tesla.Middleware.DecodeRels](Tesla.Middleware.DecodeRels.md): Decode `Link` Hypermedia HTTP header into `opts[:rels]` field in response. - [Tesla.Middleware.DecompressResponse](Tesla.Middleware.DecompressResponse.md): Only decompress response. - [Tesla.Middleware.DigestAuth](Tesla.Middleware.DigestAuth.md): Digest access authentication middleware. - [Tesla.Middleware.EncodeFormUrlencoded](Tesla.Middleware.EncodeFormUrlencoded.md) - [Tesla.Middleware.EncodeJson](Tesla.Middleware.EncodeJson.md): Encodes request body as JSON. - [Tesla.Middleware.EncodeMessagePack](Tesla.Middleware.EncodeMessagePack.md) - [Tesla.Middleware.FollowRedirects](Tesla.Middleware.FollowRedirects.md): Follow HTTP 3xx redirects. - [Tesla.Middleware.FormUrlencoded](Tesla.Middleware.FormUrlencoded.md): Send request body as `application/x-www-form-urlencoded`. - [Tesla.Middleware.Fuse](Tesla.Middleware.Fuse.md): Circuit Breaker middleware using [fuse](https://github.com/jlouis/fuse). - [Tesla.Middleware.Headers](Tesla.Middleware.Headers.md): Set default headers for all requests - [Tesla.Middleware.JSON](Tesla.Middleware.JSON.md): Encode requests and decode responses as JSON. - [Tesla.Middleware.KeepRequest](Tesla.Middleware.KeepRequest.md): Store request URL, body, and headers into `:opts`. - [Tesla.Middleware.Logger](Tesla.Middleware.Logger.md): Log requests using Elixir's Logger. - [Tesla.Middleware.MessagePack](Tesla.Middleware.MessagePack.md): Encode requests and decode responses as MessagePack. - [Tesla.Middleware.MethodOverride](Tesla.Middleware.MethodOverride.md): Middleware that adds `X-HTTP-Method-Override` header with original request method and sends the request as post. - [Tesla.Middleware.Opts](Tesla.Middleware.Opts.md): Set default opts for all requests. - [Tesla.Middleware.PathParams](Tesla.Middleware.PathParams.md): Use templated URLs with provided parameters in either Phoenix style (`:id`) or OpenAPI style (`{id}`). - [Tesla.Middleware.Query](Tesla.Middleware.Query.md): Set default query params for all requests - [Tesla.Middleware.Retry](Tesla.Middleware.Retry.md): Retry using exponential backoff and full jitter. - [Tesla.Middleware.SSE](Tesla.Middleware.SSE.md): Decode Server Sent Events. - [Tesla.Middleware.Telemetry](Tesla.Middleware.Telemetry.md): Emits events using the `:telemetry` library to expose instrumentation. - [Tesla.Middleware.Timeout](Tesla.Middleware.Timeout.md): Timeout HTTP request after X milliseconds. - Exceptions - [Tesla.Error](Tesla.Error.md) - [Tesla.Mock.Error](Tesla.Mock.Error.md)