Alamofire
Alamofire羽毛ハブドキュメントを見て
HTTPネットワークライブラリとして、アップル自身はネットワーク通信にURLセッションを提供しているが、より便利なインタフェースを提供するのはAlamforeである.
URLセッションに基づいた方法で複雑なネットワーク操作を改善することで、主なロジックに集中でき、データアクセスが容易になり、コードの読み取りがよりよくなります.
まず、プロジェクトファイルにライブラリをインストールし、プロジェクトの上部にimport Alamforeを作成します.Alamofire 5以降AF開始Sessionこれはdefaultへの参照です.
通信に関連するすべての関数を処理できますが、一般的に使用される主な関数は次のとおりです. AF.upload:ファイルを複数の部分、ストリーム、およびファイルメソッドでアップロードします. AF.download:ファイルをダウンロードするか、実行中のダウンロードを復元します. AF.request:ファイルに関係のない他のHTTPを要求します.
サーバ通信要求時に使用する関数
->Alamofireは、要求を送信するときにメソッドに配置するパラメータとして使用されるHTTPMethodという列挙を格納します.
getにbodyは含まれません.
応答を確認したい場合は、リクエストの後に応答を付けることができます.Alamofireでの処理応答は6つに分けられる. response
:URLSessionDelegateからすべての情報を直接伝え、応答データを評価しません. responseData
:DataResponseSerializerを使用してサーバからデータを受信し、検証します. responseString
:StringResponseSerializerを使用して、サーバから返されたデータを指定した符号化文字列に変換します. responseJSON
:JSOnResponseSerializerを使用して、サーバから返されるデータのJSOnSerializationを指定します.ReadingOptionsを使用したAnyタイプに変換します. responseDecodable
:DecodableResponseSerializerを使用して、サーバから返されたデータを指定したDataDecoderを使用したDecodableタイプに変換します.
.validation()を呼び出して有効性チェックを行います.ここで無効と判断した場合、応答は移行できません.
特定の条件でブランチ処理を行う場合は、次のように記述できます.
Alamofire
HTTPネットワークライブラリとして、アップル自身はネットワーク通信にURLセッションを提供しているが、より便利なインタフェースを提供するのはAlamforeである.
URLセッションに基づいた方法で複雑なネットワーク操作を改善することで、主なロジックに集中でき、データアクセスが容易になり、コードの読み取りがよりよくなります.
Alamforeの使用
まず、プロジェクトファイルにライブラリをインストールし、プロジェクトの上部にimport Alamforeを作成します.Alamofire 5以降AF開始Sessionこれはdefaultへの参照です.
Alamofireの主な関数
通信に関連するすべての関数を処理できますが、一般的に使用される主な関数は次のとおりです.
Request
サーバ通信要求時に使用する関数
->Alamofireは、要求を送信するときにメソッドに配置するパラメータとして使用されるHTTPMethodという列挙を格納します.
getにbodyは含まれません.
Response
応答を確認したい場合は、リクエストの後に応答を付けることができます.Alamofireでの処理応答は6つに分けられる.
:URLSessionDelegateからすべての情報を直接伝え、応答データを評価しません.
AF.request(url).response { response in
print(response)
}
:DataResponseSerializerを使用してサーバからデータを受信し、検証します.
AF.request(url).responseData { response in
print(response)
}
:StringResponseSerializerを使用して、サーバから返されたデータを指定した符号化文字列に変換します.
AF.request(url).responseString { response in
print(response)
}
:JSOnResponseSerializerを使用して、サーバから返されるデータのJSOnSerializationを指定します.ReadingOptionsを使用したAnyタイプに変換します.
AF.request(url).responseJSON { response in
print(response)
}
:DecodableResponseSerializerを使用して、サーバから返されたデータを指定したDataDecoderを使用したDecodableタイプに変換します.
AF.request(url).responseDecodable { response in
print(response)
}
Validation
.validation()を呼び出して有効性チェックを行います.ここで無効と判断した場合、応答は移行できません.
AF.request(url)
.validate()
.response { response in
print(response)
}
公式文書は上記の通りです.特定の条件でブランチ処理を行う場合は、次のように記述できます.
AF.request(UserRouter.signIn(signIn: SignInRequestModel(email: email, password: password)))
.validate(statusCode: 200...500)
.responseData { response in
switch response.result {
case .success(let data):
switch response.response?.statusCode {
case 200, 400:
guard let jsonData = try? JSONDecoder().decode(UserResponseModel.self, from: data) else { return }
return completion(.success(jsonData))
default: completion(.networkFail)
}
case .failure(let err):
print(err)
}
}
Reference
この問題について(Alamofire), 我々は、より多くの情報をここで見つけました https://velog.io/@pcsoyeon/Alamofireテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol