APIClient
public class APIClient
A flexible http client decoupled from request building and response handling
-
An object conforming to MockClient which can ihijack request and return the expected response or errors prematurily
Declaration
Swift
public var hijacker: ClientHijacker? -
Creates a client instance from a base URL and URLSessionConfiguration
Declaration
Swift
public init(baseURL: URL, configuration: URLSessionConfiguration? = nil)Parameters
baseURLBase url for all requests (this can be overwritten when calling request)
configurationconfiguration object used to create a new URLSession instance.
-
Creates a client from a base url string.
Note: Will return nil if not well formed URL.
Declaration
Swift
public convenience init?(baseURLString: String, configuration: URLSessionConfiguration? = nil) -
Creates a APIClient from base URL and user provided URLSession
Declaration
Swift
public init(baseURL: URL, urlSession: URLSession) -
Add additional headers to all requests executed by this instance.
Declaration
Swift
public func additionalHeaders(_ headers: [String : String]) -
Undocumented
Declaration
Swift
@discardableResult public func request<T>( _ requestConvertible: Endpoint<T>, baseUrl: URL? = nil, success: @escaping (T) -> Void, fail: @escaping (Error) -> Void) -> URLSessionDataTask -
Undocumented
Declaration
Swift
public func request<T>( _ requestConvertible: Endpoint<T>, baseUrl: URL? = nil, handler: @escaping (Result<T, Error>) -> Void ) -> URLSessionDataTask -
Executes an http request.
Note: status codes > 400 will be transformed into a NetworkError type This makes no assumptions on what thread this should be called on. Usually just remember to call with:
apiClient.recieve(on: RunLoop.main).sink(...)Declaration
Swift
public func request<T>(_ requestConvertible: Endpoint<T>, additionalHeaders headers: [String: String]? = nil, additionalQuery queryParameters: [String: String]? = nil, baseUrl: URL? = nil) -> AnyPublisher<T, Error>Parameters
requestConvertibleObject conforming to URLResponseCapable & URLRequestConvertible (usually Endpoint)
baseUrlOvewrite the base url for this request.
Return Value
A publisher of type AnyPublisher
APIClient Class Reference