
ResponseDetective est un cadre non intrusif pour intercepter toute demande sortante et réponses entrantes entre votre application et votre serveur à des fins de débogage.
ResponseDetective est écrit dans Swift 5.3 et prend en charge iOS 9.0+ , MacOS 10.10+ et TVOS 9.0+ .
Incorporer des réponses à votre projet est très simple - tout se résume à deux étapes:
Pour répondre à des fonctions de travail, elle doit être ajoutée en tant qu'intermédiaire entre votre (NS)URLSession et Internet. Vous pouvez le faire en enregistrant la classe URLProtocol fournie dans votre session (NS)URLSessionConfiguration.protocolClasses , ou utilisez une méthode de raccourci:
// Objective-C
NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
[RDTResponseDetective enableInConfiguration: configuration];// Swift
let configuration = URLSessionConfiguration . default
ResponseDetective . enable ( inConfiguration : configuration ) Ensuite, vous devez utiliser cette configuration avec votre (NS)URLSession :
// Objective-C
NSURLSession *session = [[ NSURLSession alloc ] initWithConfiguration: configuration];// Swift
let session = URLSession ( configuration : configuration ) Ou, si vous utilisez Afnetworking / AlaMofire comme framework de réseautage, l'intégration de ResponseDetective revient simplement à initialiser votre AFURLSessionManager / Manager avec le (NS)URLSessionConfiguration :
// Objective-C (AFNetworking)
AFURLSessionManager *manager = [[AFURLSessionManager alloc ] initWithSessionConfiguration: configuration];// Swift (Alamofire)
let manager = Alamofire . SessionManager ( configuration : configuration )Et c'est tout!
Il est maintenant temps d'effectuer la demande réelle:
// 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 ( )Voilà! ? Consultez la sortie de votre console:
<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"
│ }
Si vous utilisez Carthage, ajoutez la dépendance suivante à votre Cartfile :
github "netguru/ResponseDetective" ~> {version}
Si vous utilisez des cocoapodes, ajoutez la dépendance suivante à votre Podfile :
use_frameworks!
pod 'ResponseDetective', '~> {version}'
Si vous utilisez Swift Package Manager, ajoutez ce référentiel aux packages Swift dans les paramètres de votre projet.
Pour installer les dépendances de test ou pour construire une réponse aux réponses elle-même, n'exécutez pas directement carthage . Il ne peut pas gérer les architectures de silicium Apple introduites dans Xcode 12. Au lieu de cela, exécutez-la via le script carthage.sh :
$ ./carthage.sh bootstrapAlternativement, vous pouvez exécuter les tests localement à l'aide de Swift Package Manager avec la commande suivante:
$ swift test Ce projet a été réalisé avec ♡ par Netguru.
À partir de la version 1.0.0, les sorties de réponses sont nommées d'après les histoires de Sherlock Holmes Canon, dans l'ordre chronologique. Que se passe-t-il si nous atteignons 60 sorties et qu'il n'y a plus d'histoires? Nous ne savons pas, peut-être que nous commencerons à les nommer après des chats ou quelque chose comme ça.
Ce projet est autorisé sous licence MIT . Voir Licence.md pour plus d'informations.