Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove retry middleware #1356

Merged
merged 1 commit into from
Jan 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions UPGRADING.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ We did our best to make this transition as painless as possible for you, so here
`faraday` altogether as these gems usually have Faraday already in their dependencies.
* If you're relying on `Faraday.default_adapter` (e.g. if you use `Faraday.get` or other verb class methods, or not
specifying an adapter in your connection initializer), then you'll now need to set it yourself. It previously
defaulted to `:net_http`, but it now defaults to `:test`. You can do so simply by using the setter:
defaulted to `:net_http`, but it now requires to be explicitly set. You can do so simply by using the setter:

```ruby
# For example, to use net_http (previous default value, will now require `gem 'faraday-net_http'` in your gemfile)
Faraday.default_adapter = :net_http
```
```ruby
# For example, to use net_http (previous default value, will now require `gem 'faraday-net_http'` in your gemfile)
Faraday.default_adapter = :net_http
```

### Faraday Middleware Deprecation

Expand Down Expand Up @@ -86,7 +86,7 @@ For more details, see https://github.com/lostisland/faraday/pull/1306
* Remove `Faraday::Response::Middleware`. You can now use the new `on_complete` callback provided by `Faraday::Middleware`.
* Drop `Faraday::UploadIO` in favour of `Faraday::FilePart`.
* `Faraday.default_connection_options` will now be deep-merged into new connections to avoid overriding them (e.g. headers).
* Retry middleware `retry_block` is not called if retry will not happen due to `max_interval`. (#1350)
* Retry middleware has been moved to a separate `faraday-retry` gem.
* `Faraday::Builder#build` method is not exposed through `Faraday::Connection` anymore and does not reset the handlers if called multiple times. This method should be used internally only.

## Faraday 1.0
Expand Down
4 changes: 0 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,11 @@ Or install it yourself as:
$ gem install faraday
```

You can also install the [`faraday_middleware`][faraday_middleware]
extension gem to access a collection of useful Faraday middleware.

{: .mt-60}

{: .text-center}
[<i class="fas fa-fw fa-book-open"> </i> Read the docs][usage]{: .btn}

[github]: https://github.com/lostisland/faraday
[gitter]: https://gitter.im/lostisland/faraday
[faraday_middleware]: https://github.com/lostisland/faraday_middleware
[usage]: ./usage
14 changes: 8 additions & 6 deletions docs/middleware/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,15 @@ To use these great features, create a `Faraday::Connection` with `Faraday.new`
and add the correct middleware in a block. For example:

```ruby
require 'faraday_middleware'
require 'faraday'
require 'faraday/net_http'
require 'faraday/retry'

conn = Faraday.new do |f|
f.request :json # encode req bodies as JSON
f.request :retry # retry transient failures
f.response :follow_redirects # follow redirects
f.response :json # decode response bodies as JSON
f.adapter :net_http # Use the Net::HTTP adapter
end
response = conn.get("http://httpbingo.org/get")
```
Expand Down Expand Up @@ -64,7 +66,7 @@ For example, the `Faraday::Request::UrlEncoded` middleware registers itself in
# Faraday::Response and Faraday::Adapter registries
conn = Faraday.new do |f|
f.request :url_encoded
f.response :follow_redirects
f.response :logger
f.adapter :httpclient
end
```
Expand All @@ -75,7 +77,7 @@ or:
# identical, but add the class directly instead of using lookups
conn = Faraday.new do |f|
f.use Faraday::Request::UrlEncoded
f.use FaradayMiddleware::FollowRedirects
f.use Faraday::Response::Logger
f.use Faraday::Adapter::HTTPClient
end
```
Expand All @@ -84,7 +86,7 @@ This is also the place to pass options. For example:

```ruby
conn = Faraday.new do |f|
f.request :retry, max: 10
f.request :logger, bodies: true
end
```

Expand All @@ -93,7 +95,7 @@ end
The [Awesome Faraday](https://github.com/lostisland/awesome-faraday/) project
has a complete list of useful, well-maintained Faraday middleware. Middleware is
often provided by external gems, like the
[faraday-middleware](https://github.com/lostisland/faraday_middleware) gem.
[faraday-retry](https://github.com/lostisland/faraday-retry) gem.

We also have [great documentation](list) for the middleware that ships with
Faraday.
Expand Down
5 changes: 1 addition & 4 deletions docs/middleware/list.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ multipart form request.
* [`UrlEncoded`][url_encoded] converts a `Faraday::Request#body` hash of key/value pairs into a url-encoded request body.
* [`Json Request`][json-request] converts a `Faraday::Request#body` hash of key/value pairs into a JSON request body.
* [`Json Response`][json-response] parses response body into a hash of key/value pairs.
* [`Retry`][retry] automatically retries requests that fail due to intermittent client
or server errors (such as network hiccups).
* [`Instrumentation`][instrumentation] allows to instrument requests using different tools.


Expand All @@ -47,8 +45,7 @@ before returning it.
[multipart]: ./multipart
[url_encoded]: ./url-encoded
[json-request]: ./json-request
[retry]: ./retry
[instrumentation]: ./instrumentation
[json-response]: ./json-response
[json-response]: ./json-response
[logger]: ./logger
[raise_error]: ./raise-error
4 changes: 2 additions & 2 deletions docs/middleware/request/instrumentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ layout: documentation
title: "Instrumentation Middleware"
permalink: /middleware/instrumentation
hide: true
prev_name: Retry Middleware
prev_link: ./retry
prev_name: JSON Request Middleware
prev_link: ./json-request
next_name: JSON Response Middleware
next_link: ./json-response
top_name: Back to Middleware
Expand Down
4 changes: 2 additions & 2 deletions docs/middleware/request/json.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ permalink: /middleware/json-request
hide: true
prev_name: UrlEncoded Middleware
prev_link: ./url-encoded
next_name: Retry Middleware
next_link: ./retry
next_name: Instrumentation Middleware
next_link: ./instrumentation
top_name: Back to Middleware
top_link: ./list
---
Expand Down
126 changes: 0 additions & 126 deletions docs/middleware/request/retry.md

This file was deleted.

7 changes: 3 additions & 4 deletions docs/usage/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,18 +156,17 @@ To use these great features, create a `Faraday::Connection` with `Faraday.new`
and add the correct middleware in a block. For example:

```ruby
require 'faraday_middleware'
require 'faraday'
require 'faraday/retry'

conn = Faraday.new('http://httpbingo.org') do |f|
f.request :json # encode req bodies as JSON and automatically set the Content-Type header
f.request :retry # retry transient failures
f.response :follow_redirects # follow redirects (3xx HTTP response codes)
f.response :json # decode response bodies as JSON
f.adapter :net_http # adds the adapter to the connection, defaults to `Faraday.default_adapter`
end

# Sends a GET request with JSON body that will automatically retry in case of failure
# and follow 3xx redirects.
# Sends a GET request with JSON body that will automatically retry in case of failure.
response = conn.get('get', boom: 'zap')

# response body is automatically decoded from JSON to a Ruby hash
Expand Down
8 changes: 1 addition & 7 deletions lib/faraday/error.rb
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,7 @@ class ConnectionFailed < Error
class SSLError < Error
end

# Raised by FaradayMiddleware::ResponseMiddleware
# Raised by middlewares that parse the response, like the JSON response middleware.
class ParsingError < Error
end

# Exception used to control the Retry middleware.
#
# @see Faraday::Request::Retry
class RetriableResponse < Error
end
end
1 change: 0 additions & 1 deletion lib/faraday/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -134,5 +134,4 @@ def to_env(connection)
require 'faraday/request/instrumentation'
require 'faraday/request/json'
require 'faraday/request/multipart'
require 'faraday/request/retry'
require 'faraday/request/url_encoded'
Loading