ResponseDetective Versions Save

Sherlock Holmes of the networking layer. :male_detective:

1.0.1

7 years ago

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

7 years ago

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 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.

0.5

7 years ago

In this release:

  • Migrated ResponseDetective to Swift 2.3 (#12)
  • Fixed a bug where bodies of requests were always <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.

0.4

7 years ago

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 NSPredicates to filter out NSURLRequests 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 to URLProtocol. 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 new OutputFacility 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 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.
  • Build settings and configurations have been migrated from pbxproj into dedicated xcconfig files and Info.plists 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

8 years ago

In this release:

  • ResponseDetective now uses Swift 2.0 and is compatible with Xcode 7 (#9)

0.2

8 years ago

In this release:

  • Fixed a timeout when using ResponseDetective with HTTPS requests (#1)
  • Removed a team identifier from pbxproj so that it doesn't produce code signing conflicts
  • Minor README improvements (#3)

0.1

8 years ago

This is an initial stable release.

0.1-rc2

8 years ago

In this release candidate:

  • Added OS X support.
  • Made *InterceptorType protocols : class protocols.
  • InterceptingProtocol doesn't use removal tokens anymore.
  • Added ImageInterceptor for intercepting image/* responses.
  • Renamed BaseInterceptor to HeadersInterceptor 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-rc1

8 years ago

This is an initial release candidate.