This shouldn't affect most people but it's technically breaking since it affects a public interface.
IHttpSettingsContainer is an interface for things that have a Settings property (instance of FlurlHttpSettings) and a Headers property. It basically exists for one reason: so that a whole bunch of fluent extension methods can be defined once and apply to both IFlurlClient and IFlurlRequest. A few observations:
The new IFlurlClientBuilder could benefit from getting all these extension methods for free too.
So could HttpTest, but only for Settings - it doesn't have a Headers property.
So the changes are:
IHttpSettingsContainer will be broken into 2 interfaces: ISettingsContainer and IHeadersContainer (breaking).
IFlurlClient, IFlurlRequest, and IFlurlClientBuilder will implement both.
This shouldn't affect most people but it's technically breaking since it affects a public interface.
IHttpSettingsContainer
is an interface for things that have aSettings
property (instance ofFlurlHttpSettings
) and aHeaders
property. It basically exists for one reason: so that a whole bunch of fluent extension methods can be defined once and apply to bothIFlurlClient
andIFlurlRequest
. A few observations:IFlurlClientBuilder
could benefit from getting all these extension methods for free too.HttpTest
, but only forSettings
- it doesn't have aHeaders
property.So the changes are:
IHttpSettingsContainer
will be broken into 2 interfaces:ISettingsContainer
andIHeadersContainer
(breaking).IFlurlClient
,IFlurlRequest
, andIFlurlClientBuilder
will implement both.HttpTest
will implementISettingsContainer
.