Http Service

Http Service

BaseResponse

Protocol ของ Model พื้นฐานสำหรับการรับ Response จาก Web Service

protocol BaseResponse: Codable {
    var success: Bool? { get }
    var message: String? { get }
}

Properties

NameDescriptionTypeDefault
successStatus ของ Response จาก Web ServiceOptional(Boolean)null
messageข้อความจาก Web ServiceOptional(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

NameDescriptionType
dataข้อมูลไฟล์ที่จะส่งไปยัง Web Service ที่อยู่ในรูปแบบของ DataData
filenameชื่อไฟล์ที่จะส่งไปยัง Web ServiceString
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

NameDescriptionTypeDefault
accessTokenToken ที่ใช้สำหรับการยิง RequestOptional(String)null
tokenTypeประเภทของ TokenOptional(String)null
expiresInTimestamp ที่ Access Token จะหมดอายุOptional(Integer)null
refreshTokenToken ที่ใช้สำหรับการขอ Access Token ใหม่เมื่อหมดอายุOptional(String)null

ApiError

ประเภทของ Error ที่ได้จากการเรียก Web Service

enum ApiError: Error {
    case forbidden
    case notFound
    case conflict
    case internalServerError
    case notSuccess(message: String)
}
NameDescription
forbiddenError code 403
notFoundError code 404
conflictError code 409
internalServerErrorError code 500
notSuccessError code 400 with Message

HttpHeaderField

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
}
NameDescription
accountการเข้าสู่ระบบด้วย Account ที่สร้างจากระบบโดยตรง
facebookการเข้าสู่ระบบด้วย Facebook (Login with Facebook)
appleกาาเข้าสู่ระบบด้วย AppleID (Login with AppleID)

Class Http Service

Properties

NameDescriptionTypeDefault
sharedInstanceInstance ของ HttpService ที่ใช้สำหรับการเรียกครั้งถัดไปHttpServiceHttpService()
sessionSession ของ AlamofireSessionnull

Method Overview

NameDescriptionReturn
request()การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters ได้Observable
requestOAuth()การสร้าง Request และเรียก Web Service โดยสามารถระบุ Service และส่ง Parameters ได้ โดย Request นี้จะมีการส่ง AccessToken ไปใน Http Header ด้วยObservable
uploadFile()การสร้าง Request และเรียก Web Service สำหรับการ Upload Filevoid
downloadFile()การสร้าง Request และเรียก Web Service สำหรับการ Download Filevoid
syncOffline()การสร้าง Request และเรียก Web Service สำหรับการ Sync Offlinevoid
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

NameDescriptionType
TClass ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponseClass
responseTypeProtocol ของ Class ModelT.Type
headersHttp HeadersOptional(HTTPHeaders)
serviceService ต้องการเรียกService
actionAction ของ Service ที่ต้องการเรียกOptional(String)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
methodMethod ของ Http เช่น GET POSTHTTPMethod

Returns

TypeDescription
ObservableReturn 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

NameDescriptionType
TClass ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponseClass
responseTypeProtocol ของ Class ModelT.Type
headersHttp HeadersOptional(HTTPHeaders)
serviceService ต้องการเรียกService
actionAction ของ Service ที่ต้องการเรียกOptional(String)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Codable)
methodMethod ของ Http เช่น GET POSTHTTPMethod

Returns

TypeDescription
ObservableReturn 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

NameDescriptionType
TClass ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponseClass
responseTypeProtocol ของ Class ModelT.Type
headersHttp HeadersOptional(HTTPHeaders)
serviceService ต้องการเรียกService
actionAction ของ Service ที่ต้องการเรียกOptional(String)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
methodMethod ของ Http เช่น GET POSTHTTPMethod

Returns

TypeDescription
ObservableReturn 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

NameDescriptionType
TClass ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponseClass
responseTypeProtocol ของ Class ModelT.Type
headersHttp HeadersOptional(HTTPHeaders)
serviceService ต้องการเรียกService
actionAction ของ Service ที่ต้องการเรียกOptional(String)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Codable)
methodMethod ของ Http เช่น GET POSTHTTPMethod

Returns

TypeDescription
ObservableReturn 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

NameDescriptionType
TClass ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponseClass
responseTypeProtocol ของ Class ModelT.Type
headersHttp HeadersOptional(HTTPHeaders)
appDataProcedureSP ที่ต้องการเรียกString
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)

Returns

TypeDescription
ObservableReturn 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

NameDescriptionType
TClass ของ Model ที่จะใช้รับ Response โดยต้อง Inherit มาจาก Protocol BaseResponseClass
responseTypeProtocol ของ Class ModelT.Type
headersHttp HeadersOptional(HTTPHeaders)
appDataProcedureSP ที่ต้องการเรียกString
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Codable)

Returns

TypeDescription
ObservableReturn Observable ของ Request
func uploadFile(headers: HTTPHeaders?, parameters: [String: Any]?, fileParameters: [String: FileInfo], completion: @escaping (Error?, [String: Any]?) -> Void)

การสร้าง Request และเรียก Web Service สำหรับการ Upload File

Parameters

NameDescriptionType
headersHttp HeadersOptional(HTTPHeaders)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
fileParametersข้อมูลไฟล์ที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
completionCallback เมื่อ Upload File สำเร็จหรือล้มเหลวCompletion
func uploadFile(headers: HTTPHeaders?, parameters: Codable?, fileParameters: [String: FileInfo], completion: @escaping (Error?, [String: Any]?) -> Void)

การสร้าง Request และเรียก Web Service สำหรับการ Upload File

Parameters

NameDescriptionType
headersHttp HeadersOptional(HTTPHeaders)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Codable)
fileParametersข้อมูลไฟล์ที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
completionCallback เมื่อ Upload File สำเร็จหรือล้มเหลวCompletion
func downloadFile(headers: HTTPHeaders?, parameters: [String: Any]?, completion: @escaping (Error?, Data?) -> Void)

การสร้าง Request และเรียก Web Service สำหรับการ Download File

Parameters

NameDescriptionType
headersHttp HeadersOptional(HTTPHeaders)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
completionCallback เมื่อ Download File สำเร็จหรือล้มเหลวCompletion
func downloadFile(headers: HTTPHeaders?, parameters: Codable?, completion: @escaping (Error?, Data?) -> Void)

การสร้าง Request และเรียก Web Service สำหรับการ Download File

Parameters

NameDescriptionType
headersHttp HeadersOptional(HTTPHeaders)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Codable)
completionCallback เมื่อ 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

NameDescriptionType
headersHttp HeadersOptional(HTTPHeaders)
parametersข้อมูลที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
fileParametersข้อมูลไฟล์ที่ต้องการส่งไปยัง Web ServiceOptional(Dictionary)
completionCallback เมื่อ Sync Offline สำเร็จหรือล้มเหลวCompletion
func login(username: String, password: String, loginType: LoginType, didSuccess: (() -> Void)?, didError: ((Error) -> Void)?)

การสร้าง Request และเรียก Web Service สำหรับการเข้าสู่ระบบ

Parameters

NameDescriptionType
usernameชื่อผู้ใช้งานสำหรับการเข้าสู่ระบบString
passwordรหัสผู้ใช้งานสำหรับการเข้าสู่ระบบString
loginTypeประเภทของการเข้าสู่ระบบLoginType
didSuccessCallback เมื่อการเข้าสู่ระบบสำเร็จCompletion
didErrorCallback เมื่อการเข้าสู่ระบบล้มเหลวCompletion
func logout(didError: ((Error?) -> Void))

การออกจากระบบ (จะเป็นการลบข้อมูลที่ถูกเก็บไว้โดยไม่มีการเรียก Web Service)

Parameters

NameDescriptionType
didErrorCallback เมื่อการออกจากระบบล้มเหลวCompletion