Sherlock Holmes of the networking layer. :male_detective:
In this minor release:
#import
path that caused an analyzer error in Xcode 8.3.Note: The prebuilt framework targets Swift 3.1 and Xcode 8.3.
This is a major and a first stable release of ResponseDetective! 🕵️
Content-Type
headers containing parameters, such as application/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.
In this release:
<null>
(#14)Note: The prebuilt framework targets Swift 2.3 and Xcode 8.0. If you're use another version of Xcode, you might need to run carthage
command with --no-use-binaries
option.
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 :trollface: 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 out NSURLRequest
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:
InterceptingProtocol
has been renamed to URLProtocol
. It is no longer a part of public API and it's no longer responsible for anything more than just HTTP interception.BodyDeserializer
protocol.OutputStreamType
for identifying possible output targets. A new OutputFacility
protocol has been introduced – it now allows output facilities to handle raw request, response and error representations instead of meaningless strings.URLProtocol
functionality.*/json
, '*/xml
, */html
, text/plain
, image/*
) are now enabled by default and cannot be unregistered.RequestRepresentation
, ResponseRepresentation
and ErrorRepresentation
types have all gone through major implementation cleanup and now in addition to their represented type, they contain associated deserialized body and request identifier.pbxproj
into dedicated xcconfig
files and Info.plist
s have been updated to use build settings instead of hardcoded values.Also, the following issues have been resolved:
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.
In this release:
In this release:
This is an initial stable release.
In this release candidate:
*InterceptorType
protocols : class
protocols.InterceptingProtocol
doesn't use removal tokens anymore.ImageInterceptor
for intercepting image/*
responses.BaseInterceptor
to HeadersInterceptor
to clarify its purpose.This is an initial release candidate.