A description of your awesome changes here!
- Instrument timeout exceptions (#110)
Features:
- Add ruby 3 compability
Bug fixes:
- Explictly set sidekiq gem version
- Update circleci base image
- Remove
require 'faraday/request/retry'
dependency since its deprecated in faraday1.10.3
.
Features:
- Adds circuit breaker to PATCH PUT POST requests (#66)
Features:
- Raises error on
502 Bad Gateway
#94
Features:
- APIClient accepts timeout and open_timeout options
Bug fix:
- Make sure Faraday adapter is loaded after all middleware for ApiClient
Drop:
- Builds for Ruby 2.2
Features:
- Allow specification of User-Agent through environment variable
- Add fallback values for User-Agent header in API client
Bug fix:
- Allow all middleware classes to be initialised in the same format
Features:
Routemaster::Cache
can be be given initialisation options to merge into the default ones for creating aRoutemaster::APIClient
instance (#82)
Features:
- Clients can now set User Agent when placing requests (#80) - details in README
Features:
- Allowed connections to take the exceptions in which to retry requests on (#79)
Bug fixes:
- Fix the issue with parsing body in fatal error message. (#78)
Features:
- Raises more semantically correct error on 410
Features:
- Raises error on 405 and 503
Features:
- Adds a PUT request to the APIClient
Features:
- Adds a circuit breaker to GET requests (#66)
Features:
- Make retry-attempt-count and retry-methods configurable in APIClient.
Bug fixes:
- Fixes a regression introduced in 3.0.1 where the APIClient auth data would not be populated under some conditions. (#65)
Bug fixes:
- Fixes a condition where cache keys in Redis would not expire (#63)
Bug fixes:
- Set middleware before adapter so Faraday is happy (#60)
Breaking API changes
- Removes the
#with_response
API client method. (#54)
Bug fixes
- Remove state from api client for thread safety. (#54)
Bug fixes
- Use thread pool executor instead of cached thread pool (#51)
Features
- Allow to supply pre-initialized (distributed) Redis client objects to connect to the Drain Redis and the Cache Redis (#52)
Bug fixes
- Bust the cache when the resource is not found (#48)
Features:
- Adds the
Siphon
middleware toCacheBusting
drain (#45)
Bug fixes
- Sweep the dirty map if a resource is missing (#47)
Features:
- Allow template urls to be defined in services (#38)
- Adds the
Siphon
middleware (#39, #44) - Adds
CacheBusting
middleware (#40)
Bug fixes:
- Caching middleware always busts the cache on events - preventing stale events being cached in some circumstances (#40)
Features:
- Optionally wrap the APIClient actions inside a Response class (#37)
Bug fixes:
- Require 'rest_resource' further up in the file tree (#36)
Bug fixes:
- APIClient#discover now memoizes the root response at class level (#35)
Features:
- API Client now exposes promises instead of simple futures (#34)
Features:
- Collection traversal API (#24)
- Permits disabling of response caching (#26)
- Use
Redis::Distributed
for caching (#27)
Bug fixes:
- Do not cache collection responses (#26)
- Fixes Sidekiq loading issue (#25)
- Concurrency issues when caching (#28)
- Ruby 2.4.0 compatibility (#31)
Other:
- Switches from
net-http-persistent
totyphoeus
(#31) - Switches from
ruby-thread
toconcurrent-ruby
(#31)
Features:
- Adds
HateoasResponse#has?
to check for resource relations (#22)
Bug fixes:
- Fixes 404s breaking the
CacheAndSweep
job (#21)
- Fix logging for error responses: For unsuccessful responses rescue the raised error and send increment signal to metrics backend (#15)
- Add Telemetry support for requests and responses (#16)
- Add support for PATCH requests. (#12) Invalidate cached response (if any) on PATCH
Major upgrade: the gem now includes a high-level HTTP API client.
- Request materialisation, JSON-HAL parsing, and hypermedia link traversal (#6)
- Surface HTTP errors as exceptions (#8)
- Various fixes (#7, #9, #10)
- Testing against multiple versions of Rails (#11)