
RespondeTectiveは、デバッグの目的で、アプリとサーバーの間の発信要求と着信応答を傍受するための非侵入フレームワークです。
RespondeTectiveはSwift 5.3で記述されており、 iOS 9.0+ 、 MacOS 10.10+ 、およびTVOS 9.0+をサポートしています。
プロジェクトにResponseTectiveを組み込むことは非常に簡単です。すべてが2つのステップになります。
respondeTectiveが機能するには、 (NS)URLSessionとインターネットの間の仲介者として追加する必要があります。これを行うには、セッション(NS)URLSessionConfiguration.protocolClassesに提供されたURLProtocolクラスを登録するか、ショートカット方法を使用します。
// Objective-C
NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
[RDTResponseDetective enableInConfiguration: configuration];// Swift
let configuration = URLSessionConfiguration . default
ResponseDetective . enable ( inConfiguration : configuration )次に、その構成を(NS)URLSessionで使用する必要があります。
// Objective-C
NSURLSession *session = [[ NSURLSession alloc ] initWithConfiguration: configuration];// Swift
let session = URLSession ( configuration : configuration )または、AfnetWorking / Alamofireをネットワークフレームワークとして使用している場合、RespondEtectiveを統合することで、上記の(NS)URLSessionConfigurationを使用してAFURLSessionManager / Managerを初期化するだけです。
// Objective-C (AFNetworking)
AFURLSessionManager *manager = [[AFURLSessionManager alloc ] initWithSessionConfiguration: configuration];// Swift (Alamofire)
let manager = Alamofire . SessionManager ( configuration : configuration )そして、それだけです!
さて、実際のリクエストを実行する時が来ました。
// Objective-C
NSURLRequest *request = [[ NSURLRequest alloc ] initWithURL: [ NSURL URLWithString: @" http://httpbin.org/get " ]];
[[session dataTaskWithRequest: request] resume ];// Swift
let request = URLRequest ( URL : URL ( string : " http://httpbin.org/get " ) ! )
session . dataTask ( with : request ) . resume ( )ボイラ! ?コンソール出力をご覧ください。
<0x000000000badf00d> [REQUEST] GET https://httpbin.org/get
├─ Headers
├─ Body
│ <none>
<0x000000000badf00d> [RESPONSE] 200 (NO ERROR) https://httpbin.org/get
├─ Headers
│ Server: nginx
│ Date: Thu, 01 Jan 1970 00:00:00 GMT
│ Content-Type: application/json
├─ Body
│ {
│ "args" : {
│ },
│ "headers" : {
│ "User-Agent" : "ResponseDetective/1 CFNetwork/758.3.15 Darwin/15.4.0",
│ "Accept-Encoding" : "gzip, deflate",
│ "Host" : "httpbin.org",
│ "Accept-Language" : "en-us",
│ "Accept" : "*/*"
│ },
│ "url" : "https://httpbin.org/get"
│ }
カルタゴを使用している場合は、次の依存関係をCartfileに追加します。
github "netguru/ResponseDetective" ~> {version}
cocoapodsを使用している場合は、次の依存関係をPodfileに追加します。
use_frameworks!
pod 'ResponseDetective', '~> {version}'
Swift Package Managerを使用している場合は、このリポジトリをプロジェクト設定のSwiftパッケージに追加します。
テスト依存関係をインストールするか、それ自体を応答すること自体を構築するには、 carthage直接実行しないでください。 Xcode 12で導入されたApple Siliconアーキテクチャを処理できません。代わりに、 carthage.shスクリプトを実行してください。
$ ./carthage.sh bootstrapまたは、次のコマンドを使用して、Swift Package Managerを使用してローカルでテストを実行できます。
$ swift test このプロジェクトは、netguruによって♡で作成されました。
バージョン1.0.0から始めて、ResponseTectiveのリリースは、Sherlock Holmes Canon Storiesにちなんで命名されました。 60のリリースに到達し、これ以上のストーリーがない場合はどうなりますか?私たちは知りません、多分私たちは猫か何かにちなんで名前を付け始めます。
このプロジェクトは、 MITライセンスに基づいてライセンスされています。詳細については、license.mdを参照してください。