Skip to content

Instantly share code, notes, and snippets.

@jemai
Last active March 13, 2019 16:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jemai/fd0a4c77ce26c6af6dbcd0381d0108db to your computer and use it in GitHub Desktop.
Save jemai/fd0a4c77ce26c6af6dbcd0381d0108db to your computer and use it in GitHub Desktop.
Request protocol
import Foundation
public typealias Headers = [String: String]
public typealias Params = [String: String]
public typealias BodyParams = [String: Any]
public protocol Request {
var urlString : String? { get }
var method : HTTPMethod { get }
var bodyParams : BodyParams? { get }
var headers : Headers? { get }
var params : Params? { get }
}
public extension Request {
public var method : HTTPMethod { return .get }
public var bodyParams : BodyParams? { return nil }
public var headers : Headers? { return nil }
}
public init(url: String) {
self.urlString = url
}
public struct HTTPRequest: Request {
public var params: Params?
public var bodyData: Data?
public var urlString: String?
public var method: HTTPMethod = .get
public var bodyParams: BodyParams? = nil
public var headers: Headers? = ["Content-Type" : "application/json"]
public init(url: String, headers: Headers?, bodyParams: BodyParams?, method: HTTPMethod, params: Params? = nil) {
self.urlString = url
self.method = method
self.headers = headers
self.bodyParams = bodyParams
self.params = params
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment