HTTPEngine
public struct HTTPEngine
Undocumented
-
Undocumented
Declaration
Swift
public init()
-
Creates a URLRequest Object
– Headers
By default all requests have the
["Accept-Encoding": "gzip;q=1.0,compress;q=0.5"]
header included.All
.post, .put, & .patch
requests also contain["Content-Type": "application/json"]
by default.These values can be overridden by including those headers as arguments when calling this function
Declaration
Swift
public func buildRequest( method: HTTPMethod, url: URL, body: Data? = nil, header: Header? = nil ) -> URLRequest
Parameters
method
HTTPMethod -
.get, .put. post
etc.,url
A URL Object
body
Data?: The body data to send with a request
header
A dictionary of HTTP Request Headers -
["Content-Type": "text", "Some Key": "Some Value"]
Return Value
A fully constructed URLRequest
-
Makes a request via HTTP
– Headers
By default all requests have the
["Accept-Encoding": "gzip;q=1.0,compress;q=0.5"]
header included.All
.post, .put, & .patch
requests also contain["Content-Type": "application/json"]
by default.These values can be overridden by including those headers as arguments when calling this function
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
public func makeRequest( method: HTTPMethod, url urlString: String, body: Data? = nil, header: Header? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Data, Error>
Parameters
method
HTTPMethod -
.get, .put. post
etc.,urlString
URL domain + path as a string:
"abc.com/some/path"
body
Data?: The body data to send with a request
header
A dictionary of HTTP Request Headers -
["Content-Type": "text", "Some Key": "Some Value"]
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a request via HTTP and Decodes the response
– Headers
By default all requests have the
["Accept-Encoding": "gzip;q=1.0,compress;q=0.5"]
header included.All
.post, .put, & .patch
requests also contain["Content-Type": "application/json"]
by default.These values can be overridden by including those headers as arguments when calling this function
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func makeRequestAndParseResponse<Response: Decodable>( _ decodableResponse: Response.Type, method: HTTPMethod, url: String, header: Header? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
method
HTTPMethod -
.get, .put. post
etc.,urlString
URL domain + path as a string:
"abc.com/some/path"
header
A dictionary of HTTP Request Headers -
["Content-Type": "text", "Some Key": "Some Value"]
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a request via HTTP, Encodes the body and Decodes the response
– Headers
By default all requests have the
["Accept-Encoding": "gzip;q=1.0,compress;q=0.5"]
header included.All
.post, .put, & .patch
requests also contain["Content-Type": "application/json"]
by default.These values can be overridden by including those headers as arguments when calling this function
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func makeRequestAndParseResponse<Body: Encodable, Response: Decodable>( _ decodableResponse: Response.Type, method: HTTPMethod, url: String, body: Body?, header: Header? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
method
HTTPMethod -
.get, .put. post
etc.,urlString
URL domain + path as a string:
"abc.com/some/path"
body
Encodable?: The encodable object that represents body data to send with a request
header
A dictionary of HTTP Request Headers -
["Content-Type": "text", "Some Key": "Some Value"]
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a request via HTTP and Decodes the response
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func get<Response: Decodable>( _ value: Response.Type, url: String, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
urlString
URL domain + path as a string:
"abc.com/some/path"
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a POST request via HTTP, Encodes the body and Decodes the response
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func post<Response: Decodable, Body: Encodable>( _ value: Response.Type, url: String, body: Body? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
urlString
URL domain + path as a string:
"abc.com/some/path"
body
Encodable?: The encodable object that represents body data to send with a request
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a POST request via HTTP, Encodes the body and Decodes the response
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func post<Response: Decodable>( _ value: Response.Type, url: String, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
urlString
URL domain + path as a string:
"abc.com/some/path"
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a PATCH request via HTTP, Encodes the body and Decodes the response
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func patch<Response: Decodable, Body: Encodable>( _ value: Response.Type, url: String, body: Body? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
urlString
URL domain + path as a string:
"abc.com/some/path"
body
Encodable?: The encodable object that represents body data to send with a request
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a PUT request via HTTP, Encodes the body and Decodes the response
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func put<Response: Decodable, Body: Encodable>( _ value: Response.Type, url: String, body: Body? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
urlString
URL domain + path as a string:
"abc.com/some/path"
body
Encodable?: The encodable object that represents body data to send with a request
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser
-
Makes a DELETE request via HTTP, Encodes the body and Decodes the response
– Validation
By default the validation checks for a 200-299 status code and fails if the code is out of bounds
// example validator validator: { $0 == 202 } // Failure throws Errors.Response.unexpectedStatusCode(HTTPURLRequest)
Declaration
Swift
func delete<Response: Decodable, Body: Encodable>( _ value: Response.Type, url: String, body: Body? = nil, validator: ResponseValidationClosure? = nil ) -> AnyPublisher<Response, Error>
Parameters
decodableResponse
Decodable - An object that represents the response body
urlString
URL domain + path as a string:
"abc.com/some/path"
body
Encodable?: The encodable object that represents body data to send with a request
validator
(Int) -> Bool
- A function to validate the response code of the request. By default, makeRequest() will fail if the status code does not fall within the 200 - 299 range. To override this, pass in a function that compares the status code and returns a boolean. True == success, False == failure. Upon failure an error will be thrown that contains the HTTPURLResponse for inspection.Return Value
AnyPubliser