Releases: netguru/ResponseDetective
1.0.1: The Sign of the Four
In this minor release:
- Fixed a non-portable
#import
path that caused an analyzer error in Xcode 8.3. - Upgraded project files to Xcode 8.3.
Note: The prebuilt framework targets Swift 3.1 and Xcode 8.3.
1.0: A Study in Scarlet
This is a major and a first stable release of ResponseDetective! 🕵️
- Swift 3.0.2 support: ResponseDetective has been rewritten in Swift 3.0.2 and its API has been revisited to be compliant with Swift API Design Guidelines. (#13, #19, #22, #25, #27, #18, #20, kudos to @serejahh and @akashivskyy!)
- Platform support: ResponseDetective now supports tvOS 9.0+ and macOS requirement has been lowered to macOS 10.9+. (#16, #17, kudos to @akashivskyy!)
- Better CocoaPods support: Installation issues that might have occurred when using CocoaPods on Objective-C-only projects has been fixed. (#21, #28, kudos to @MatteoBatti and @akashivskyy!)
- Parametric Content-Types: ResponseDetective now honors
Content-Type
headers containing parameters, such asapplication/json; charset=utf8
. (#23, #24, #26, kudos to @akashivskyy!)
Kudos to @PatrykKaczmarek, @rad3ks, @Siemian and @akashivskyy who helped review the pull requests!
Note: The prebuilt framework targets Swift 3.0.2 and Xcode 8.2.1. If you use another version of Xcode, you might need to run carthage
command with --no-use-binaries
option.
0.5
0.4
This is a major new release with lots of new features, bug fixes, improvements and backward-incompatible breaking changes. The major new features include:
-
Less boilerplate, more flexibility – You no longer need to either specify request, response and error interceptors, or manually register the intercepting protocol for every instance of
NSURLSession
. Now all you need to do is to call one shortcut method to enable ResponseDetective and start logging HTTP traffic. -
Objective-C interoperability – You can now use ResponseDetective from your legacy
Objective-C apps, without needing to create mix-and-match bridges with Swift!
-
Request filtering – Not all requests (e.g. such including sensitive data) should be printed into the console even for debug purposes. Now you can use multiple
NSPredicate
s to filter outNSURLRequest
s which should not be intercepted by ResponseDetective. -
Better console output – The console outputs became much more readable. The new format uses a boxed layout and includes a request identifier (
0xbadf00d
in this particular example) so that you can quickly associate responses with originating requests.<0xbadf00d> [RESPONSE] 200 (NO ERROR) https://httpbin.org/post ├─ Headers │ Content-Type: application/json │ Content-Length: 24 ├─ Body │ { │ "args": {}, │ "headers": {} │ }
In addition to the above major features, this version includes the following fixes and improvements:
- Source code is now written in Swift 2.2 and will be regularly updated as new language versions are released.
InterceptingProtocol
has been renamed toURLProtocol
. It is no longer a part of public API and it's no longer responsible for anything more than just HTTP interception.- Request and response interceptor types have been removed and their body prettification mechanism has been decomposed into
BodyDeserializer
protocol. - ResponseDetective no longer uses Swift's
OutputStreamType
for identifying possible output targets. A newOutputFacility
protocol has been introduced – it now allows output facilities to handle raw request, response and error representations instead of meaningless strings. - Error interceptors have been removed and errors are now intercepted by default as part of standard
URLProtocol
functionality. - Header interceptors have been removed as well and they are now printed by default, no matter which body deserializer is used.
- Standard request and response body deserializers (
*/json
,'*/xml
,*/html
,text/plain
,image/*
) are now enabled by default and cannot be unregistered. RequestRepresentation
,ResponseRepresentation
andErrorRepresentation
types have all gone through major implementation cleanup and now in addition to their represented type, they contain associated deserialized body and request identifier.- Build settings and configurations have been migrated from
pbxproj
into dedicatedxcconfig
files andInfo.plist
s have been updated to use build settings instead of hardcoded values. - Project has been migrated to Bitrise.io Continuous Integration service.
Also, the following issues have been resolved:
- Requests made using
Alamofire.Manager
are automatically cancelled and ignored (#5)
Note: The prebuilt framework targets Swift 2.2 and Xcode 7.3. If you're use another version of Xcode, you might need to run carthage
command with --no-use-binaries
option.
0.3
0.2
0.1
This is an initial stable release.
0.1 RC 2
In this release candidate:
- Added OS X support.
- Made
*InterceptorType
protocols: class
protocols. InterceptingProtocol
doesn't use removal tokens anymore.- Added
ImageInterceptor
for interceptingimage/*
responses. - Renamed
BaseInterceptor
toHeadersInterceptor
to clarify its purpose. - Fixed a bug with request timeout when using completion handlers.
- Fixed a bug with content-type not being recognized.
- Added missing specs, thus completing the coverage.
- Made various README improvements.
0.1 RC 1
This is an initial release candidate.