Http Service
BaseResponse
Protocol ของ Model พื้นฐานสำหรับการรับ Response จาก Web Service
protocol BaseResponse: Codable {
var success: Bool? { get }
var message: String? { get }
}
Properties
| Name | Description | Type | Default |
|---|
| success | Status ของ Response จาก Web Service | Optional(Boolean) | null |
| message | ข้อความจาก Web Service | Optional(String) | null |
FileInfo
Model ของไฟล์ที่จะส่งไปยัง Web Service
struct FileInfo {
let data: Data
let filename: String
let mimeType: String
public init(data: Data,
filename: String,
mimeType: String) {
self.data = data
self.filename = filename
self.mimeType = mimeType
}
}
Properties
| Name | Description | Type |
|---|
| data | ข้อมูลไฟล์ที่จะส่งไปยัง Web Service ที่อยู่ในรูปแบบของ Data | Data |
| filename | ชื่อไฟล์ที่จะส่งไปยัง Web Service | String |
| mimeType | รูปแบบของไฟล์ | String |
LoginResponse
Model สำหรับการรับ Response ที่มาจากการยิง Login Service โดย Inherit มาจาก Protocol BaseResponse
struct LoginResponse: BaseResponse {
public var success: Bool?
public var message: String?
let accessToken: String?
let tokenType: String?
let expiresIn: Int?
let refreshToken: String?
enum CodingKeys: String, CodingKey {
case success
case message
case accessToken = "access_token"
case tokenType = "token_type"
case expiresIn = "expires_in"
case refreshToken = "refresh_token"
}
}
Properties
| Name | Description | Type | Default |
|---|
| accessToken | Token ที่ใช้สำหรับการยิง Request | Optional(String) | null |
| tokenType | ประเภทของ Token | Optional(String) | null |
| expiresIn | Timestamp ที่ Access Token จะหมดอายุ | Optional(Integer) | null |
| refreshToken | Token ที่ใช้สำหรับการขอ Access Token ใหม่เมื่อหมดอายุ | Optional(String) | null |
ApiError
ประเภทของ Error ที่ได้จากการเรียก Web Service
enum ApiError: Error {
case forbidden
case notFound
case conflict
case internalServerError
case notSuccess(message: String)
}
| Name | Description |
|---|
| forbidden | Error code 403 |
| notFound | Error code 404 |
| conflict | Error code 409 |
| internalServerError | Error code 500 |
| notSuccess | Error code 400 with Message |
Parameters ของ Http Header ที่ใช้สำหรับการเรียก Web Service
enum HttpHeaderField: String {
case authentication = "Authorization"
case acceptType = "Accept"
case acceptEncoding = "Accept-Encoding"
case cacheControl = "Cache-Control"
case contentType = "Content-Type"
case referer = "Referer"
}
ContentType
ประเภทของข้อมูลที่จะส่งไปภายใน Request
enum ContentType: String {
case json = "application/json"
case formData = "multipart/form-data"
}
Service
Service ต่างๆที่ AtlasX Web Service รองรับ
enum Service: String {
case appAuthen = "appauthen"
case appData = "appdata"
case appMail = "appmail"
case appFile = "appFile"
case appNoti = "appnoti"
case appSyncOffline = "appsyncoffline"
}
LoginType
ประเภทของการเข้าสู่ระบบ
enum LoginType: Int {
case account = 0
case facebook = 1
case apple = 2
}
| Name | Description |
|---|
| account | การเข้าสู่ระบบด้วย Account ที่สร้างจากระบบโดยตรง |
| facebook | การเข้าสู่ระบบด้วย Facebook (Login with Facebook) |
| apple | กาาเข้าสู่ระบบด้วย AppleID (Login with AppleID) |
Class Http Service
Properties
| Name | Description | Type | Default |
|---|
| sharedInstance | Instance ของ HttpService ที่ใช้สำหรับการเรียกครั้งถัดไป | HttpService | HttpService() |
| session | Session ของ Alamofire | Session | null |
Method Overview
| Name | Description | Return |
|---|
| request() | การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters ได้ | Observable |
| requestOAuth() | การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters ได้ โดย Request นี้จะมีการส่ง AccessToken ไปใน Http Header ด้วย | Observable |
| uploadFile() | การสร้าง Request และเรียก Web Service สำหรับการ Upload File | void |
| downloadFile() | การสร้าง Request และเรียก Web Service สำหรับการ Download File | void |
| syncOffline() | การสร้าง Request และเรียก Web Service สำหรับการ Sync Offline | void |
| login() | การสร้าง Request และเรียก Web Service สำหรับการเข้าสู่ระบบ | void |
| logout() | การออกจากระบบ | void |
Method Details
func request<T: BaseResponse>(responseType: T.Type, headers: HTTPHeaders?, service: Service, action: String?, parameters: [String: Any]?, method: HTTPMethod) -> Observable<T>
การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters (Dictionary) ได้
Parameters
| Name | Description | Type |
|---|
| T | Class ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponse | Class |
| responseType | Protocol ของ Class Model | T.Type |
| headers | Http Headers | Optional(HTTPHeaders) |
| service | Service ต้องการเรียก | Service |
| action | Action ของ Service ที่ต้องการเรียก | Optional(String) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| method | Method ของ Http เช่น GET POST | HTTPMethod |
Returns
| Type | Description |
|---|
| Observable | Return Observable ของ Request |
func request<T: BaseResponse>(responseType: T.Type, headers: HTTPHeaders?, service: Service, action: String?, parameters: Codable?, method: HTTPMethod) -> Observable<T>
การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters (Model ที่ Inherit จาก Codable) ได้
Parameters
| Name | Description | Type |
|---|
| T | Class ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponse | Class |
| responseType | Protocol ของ Class Model | T.Type |
| headers | Http Headers | Optional(HTTPHeaders) |
| service | Service ต้องการเรียก | Service |
| action | Action ของ Service ที่ต้องการเรียก | Optional(String) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Codable) |
| method | Method ของ Http เช่น GET POST | HTTPMethod |
Returns
| Type | Description |
|---|
| Observable | Return Observable ของ Request |
func requestOAuth<T: BaseResponse>(responseType: T.Type, headers: HTTPHeaders?, service: Service, action: String?, parameters: [String: Any]?, method: HTTPMethod) -> Observable<T>
การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters (Dictionary) ได้ โดย Request นี้จะมีการส่ง AccessToken ไปใน Http Header ด้วย
Parameters
| Name | Description | Type |
|---|
| T | Class ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponse | Class |
| responseType | Protocol ของ Class Model | T.Type |
| headers | Http Headers | Optional(HTTPHeaders) |
| service | Service ต้องการเรียก | Service |
| action | Action ของ Service ที่ต้องการเรียก | Optional(String) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| method | Method ของ Http เช่น GET POST | HTTPMethod |
Returns
| Type | Description |
|---|
| Observable | Return Observable ของ Request |
func requestOAuth<T: BaseResponse>(responseType: T.Type, headers: HTTPHeaders?, service: Service, action: String?, parameters: Codable?, method: HTTPMethod) -> Observable<T>
การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters (Model ที่ Inherit จาก Codable) ได้ โดย Request นี้จะมีการส่ง AccessToken ไปใน Http Header ด้วย
Parameters
| Name | Description | Type |
|---|
| T | Class ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponse | Class |
| responseType | Protocol ของ Class Model | T.Type |
| headers | Http Headers | Optional(HTTPHeaders) |
| service | Service ต้องการเรียก | Service |
| action | Action ของ Service ที่ต้องการเรียก | Optional(String) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Codable) |
| method | Method ของ Http เช่น GET POST | HTTPMethod |
Returns
| Type | Description |
|---|
| Observable | Return Observable ของ Request |
func requestOAuth<T: BaseResponse>(responseType: T.Type, headers: HTTPHeaders?, appDataProcedure: String, parameters: [String: Any]?) -> Observable<T>
การสร้าง Request และเรียก Web Service โดยสามารถระบุ Store Procudure และส่ง Parameters (Dictionary) ได้ โดย Request นี้จะมีการส่ง AccessToken ไปใน Http Header ด้วย
Parameters
| Name | Description | Type |
|---|
| T | Class ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponse | Class |
| responseType | Protocol ของ Class Model | T.Type |
| headers | Http Headers | Optional(HTTPHeaders) |
| appDataProcedure | SP ที่ต้องการเรียก | String |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
Returns
| Type | Description |
|---|
| Observable | Return Observable ของ Request |
func requestOAuth<T: BaseResponse>(responseType: T.Type, headers: HTTPHeaders?, appDataProcedure: String, parameters: Codable?) -> Observable<T>
การสร้าง Request และเรียก Web Service โดยสามารถระบุ Store Procudure และส่ง Parameters (Model ที่ Inherit จาก Codable) ได้ โดย Request นี้จะมีการส่ง AccessToken ไปใน Http Header ด้วย
Parameters
| Name | Description | Type |
|---|
| T | Class ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponse | Class |
| responseType | Protocol ของ Class Model | T.Type |
| headers | Http Headers | Optional(HTTPHeaders) |
| appDataProcedure | SP ที่ต้องการเรียก | String |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Codable) |
Returns
| Type | Description |
|---|
| Observable | Return Observable ของ Request |
func uploadFile(headers: HTTPHeaders?, parameters: [String: Any]?, fileParameters: [String: FileInfo], completion: @escaping (Error?, [String: Any]?) -> Void)
การสร้าง Request และเรียก Web Service สำหรับการ Upload File
Parameters
| Name | Description | Type |
|---|
| headers | Http Headers | Optional(HTTPHeaders) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| fileParameters | ข้อมูลไฟล์ที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| completion | Callback เมื่อ Upload File สำเร็จหรือล้มเหลว | Completion |
func uploadFile(headers: HTTPHeaders?, parameters: Codable?, fileParameters: [String: FileInfo], completion: @escaping (Error?, [String: Any]?) -> Void)
การสร้าง Request และเรียก Web Service สำหรับการ Upload File
Parameters
| Name | Description | Type |
|---|
| headers | Http Headers | Optional(HTTPHeaders) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Codable) |
| fileParameters | ข้อมูลไฟล์ที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| completion | Callback เมื่อ Upload File สำเร็จหรือล้มเหลว | Completion |
func downloadFile(headers: HTTPHeaders?, parameters: [String: Any]?, completion: @escaping (Error?, Data?) -> Void)
การสร้าง Request และเรียก Web Service สำหรับการ Download File
Parameters
| Name | Description | Type |
|---|
| headers | Http Headers | Optional(HTTPHeaders) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| completion | Callback เมื่อ Download File สำเร็จหรือล้มเหลว | Completion |
func downloadFile(headers: HTTPHeaders?, parameters: Codable?, completion: @escaping (Error?, Data?) -> Void)
การสร้าง Request และเรียก Web Service สำหรับการ Download File
Parameters
| Name | Description | Type |
|---|
| headers | Http Headers | Optional(HTTPHeaders) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Codable) |
| completion | Callback เมื่อ Download File สำเร็จหรือล้มเหลว | Completion |
func syncOffline(headers: HTTPHeaders?, parameters: [String: Any]?, fileParameters: [String: FileInfo], completion: @escaping (Error?, [String: Any]?) -> Void)
การสร้าง Request และเรียก Web Service สำหรับการ Sync Offline
Parameters
| Name | Description | Type |
|---|
| headers | Http Headers | Optional(HTTPHeaders) |
| parameters | ข้อมูลที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| fileParameters | ข้อมูลไฟล์ที่ต้องการส่งไปยัง Web Service | Optional(Dictionary) |
| completion | Callback เมื่อ Sync Offline สำเร็จหรือล้มเหลว | Completion |
func login(username: String, password: String, loginType: LoginType, didSuccess: (() -> Void)?, didError: ((Error) -> Void)?)
การสร้าง Request และเรียก Web Service สำหรับการเข้าสู่ระบบ
Parameters
| Name | Description | Type |
|---|
| username | ชื่อผู้ใช้งานสำหรับการเข้าสู่ระบบ | String |
| password | รหัสผู้ใช้งานสำหรับการเข้าสู่ระบบ | String |
| loginType | ประเภทของการเข้าสู่ระบบ | LoginType |
| didSuccess | Callback เมื่อการเข้าสู่ระบบสำเร็จ | Completion |
| didError | Callback เมื่อการเข้าสู่ระบบล้มเหลว | Completion |
func logout(didError: ((Error?) -> Void))
การออกจากระบบ (จะเป็นการลบข้อมูลที่ถูกเก็บไว้โดยไม่มีการเรียก Web Service)
Parameters
| Name | Description | Type |
|---|
| didError | Callback เมื่อการออกจากระบบล้มเหลว | Completion |