Skip to content

Commit e7c4371

Browse files
authored
Merge pull request #590 from whatyouhide/json-docs
Make EncodeJson/DecodeJson middlewares public
2 parents 3703690 + 64c2de9 commit e7c4371

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

lib/tesla/middleware/json.ex

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ defmodule Tesla.Middleware.JSON do
1212
mix deps.compile tesla
1313
```
1414
15+
If you only need to encode the request body or decode the response body,
16+
you can use `Tesla.Middleware.EncodeJson` or `Tesla.Middleware.DecodeJson` directly instead.
17+
1518
## Examples
1619
1720
```
@@ -61,6 +64,7 @@ defmodule Tesla.Middleware.JSON do
6164
6265
It is used by `Tesla.Middleware.EncodeJson`.
6366
"""
67+
@spec encode(Tesla.Env.t(), keyword()) :: Tesla.Env.result()
6468
def encode(env, opts) do
6569
with true <- encodable?(env),
6670
{:ok, body} <- encode_body(env.body, opts) do
@@ -98,6 +102,7 @@ defmodule Tesla.Middleware.JSON do
98102
99103
It is used by `Tesla.Middleware.DecodeJson`.
100104
"""
105+
@spec decode(Tesla.Env.t(), keyword()) :: Tesla.Env.result()
101106
def decode(env, opts) do
102107
with true <- decodable?(env, opts),
103108
{:ok, body} <- decode_body(env.body, opts) do
@@ -151,7 +156,15 @@ defmodule Tesla.Middleware.JSON do
151156
end
152157

153158
defmodule Tesla.Middleware.DecodeJson do
154-
@moduledoc false
159+
@moduledoc """
160+
Decodes response body as JSON.
161+
162+
Only decodes the body if the `Content-Type` header suggests
163+
that the body is JSON.
164+
"""
165+
@moduledoc since: "1.8.0"
166+
167+
@impl Tesla.Middleware
155168
def call(env, next, opts) do
156169
opts = opts || []
157170

@@ -162,7 +175,12 @@ defmodule Tesla.Middleware.DecodeJson do
162175
end
163176

164177
defmodule Tesla.Middleware.EncodeJson do
165-
@moduledoc false
178+
@moduledoc """
179+
Encodes request body as JSON.
180+
"""
181+
@moduledoc since: "1.8.0"
182+
183+
@impl Tesla.Middleware
166184
def call(env, next, opts) do
167185
opts = opts || []
168186

0 commit comments

Comments
 (0)