DataResponse
public struct DataResponse<Success, Failure> : Sendable where Success : Sendable, Failure : Error
extension DataResponse: CustomStringConvertible, CustomDebugStringConvertible
Type used to store all values associated with a serialized response of a DataRequest or UploadRequest.
-
The URL request sent to the server.
Declaration
Swift
public let request: URLRequest? -
The server’s response to the URL request.
Declaration
Swift
public let response: HTTPURLResponse? -
The data returned by the server.
Declaration
Swift
public let data: Data? -
The final metrics of the response.
Note
Due toFB7624529, collection ofURLSessionTaskMetricson watchOS is currently disabled.`Declaration
Swift
public let metrics: URLSessionTaskMetrics? -
The time taken to serialize the response.
Declaration
Swift
public let serializationDuration: TimeInterval -
The result of response serialization.
Declaration
Swift
public let result: Result<Success, Failure> -
Returns the associated value of the result if it is a success,
nilotherwise.Declaration
Swift
public var value: Success? { get } -
Returns the associated error value if the result if it is a failure,
nilotherwise.Declaration
Swift
public var error: Failure? { get } -
Creates a
DataResponseinstance with the specified parameters derived from the response serialization.Declaration
Swift
public init(request: URLRequest?, response: HTTPURLResponse?, data: Data?, metrics: URLSessionTaskMetrics?, serializationDuration: TimeInterval, result: Result<Success, Failure>)Parameters
requestThe
URLRequestsent to the server.responseThe
HTTPURLResponsefrom the server.dataThe
Datareturned by the server.metricsThe
URLSessionTaskMetricsof theDataRequestorUploadRequest.serializationDurationThe duration taken by serialization.
resultThe
Resultof response serialization. -
The textual representation used when written to an output stream, which includes whether the result was a success or failure.
Declaration
Swift
public var description: String { get } -
The debug textual representation used when written to an output stream, which includes (if available) a summary of the
URLRequest, the request’s headers and body (if decodable as aStringbelow 100KB); theHTTPURLResponse‘s status code, headers, and body; the duration of the network and serialization actions; and theResultof serialization.Declaration
Swift
public var debugDescription: String { get } -
Evaluates the specified closure when the result of this
DataResponseis a success, passing the unwrapped result value as a parameter.Use the
mapmethod with a closure that does not throw. For example:let possibleData: DataResponse<Data> = ... let possibleInt = possibleData.map { $0.count }Declaration
Swift
public func map<NewSuccess>(_ transform: (Success) -> NewSuccess) -> DataResponse<NewSuccess, Failure> where NewSuccess : SendableParameters
transformA closure that takes the success value of the instance’s result.
Return Value
A
DataResponsewhose result wraps the value returned by the given closure. If this instance’s result is a failure, returns a response wrapping the same failure. -
Evaluates the given closure when the result of this
DataResponseis a success, passing the unwrapped result value as a parameter.Use the
tryMapmethod with a closure that may throw an error. For example:let possibleData: DataResponse<Data> = ... let possibleObject = possibleData.tryMap { try JSONSerialization.jsonObject(with: $0) }Declaration
Swift
public func tryMap<NewSuccess>(_ transform: (Success) throws -> NewSuccess) -> DataResponse<NewSuccess, any Error> where NewSuccess : SendableParameters
transformA closure that takes the success value of the instance’s result.
Return Value
A success or failure
DataResponsedepending on the result of the given closure. If this instance’s result is a failure, returns the same failure. -
Evaluates the specified closure when the
DataResponseis a failure, passing the unwrapped error as a parameter.Use the
mapErrorfunction with a closure that does not throw. For example:let possibleData: DataResponse<Data> = ... let withMyError = possibleData.mapError { MyError.error($0) }Declaration
Swift
public func mapError<NewFailure>(_ transform: (Failure) -> NewFailure) -> DataResponse<Success, NewFailure> where NewFailure : ErrorParameters
transformA closure that takes the error of the instance.
Return Value
A
DataResponseinstance containing the result of the transform. -
Evaluates the specified closure when the
DataResponseis a failure, passing the unwrapped error as a parameter.Use the
tryMapErrorfunction with a closure that may throw an error. For example:let possibleData: DataResponse<Data> = ... let possibleObject = possibleData.tryMapError { try someFailableFunction(taking: $0) }Declaration
Swift
public func tryMapError<NewFailure>(_ transform: (Failure) throws -> NewFailure) -> DataResponse<Success, any Error> where NewFailure : ErrorParameters
transformA throwing closure that takes the error of the instance.
Return Value
A
DataResponseinstance containing the result of the transform.
View on GitHub
Install in Dash