DecodableResponseSerializer

public final class DecodableResponseSerializer<T> : ResponseSerializer where T : Decodable

A ResponseSerializer that decodes the response data as a generic value using any type that conforms to DataDecoder. By default, this is an instance of JSONDecoder. Additionally, a request returning nil or no data is considered an error. However, if the response is has a status code valid for empty responses (204, 205), then the Empty.value value is returned.

  • The DataDecoder instance used to decode responses.

    Declaration

    Swift

    public let decoder: DataDecoder
  • HTTP response codes for which empty responses are allowed.

    Declaration

    Swift

    public let emptyResponseCodes: Set<Int>
  • HTTP request methods for which empty responses are allowed.

    Declaration

    Swift

    public let emptyRequestMethods: Set<HTTPMethod>
  • Creates an instance using the values provided.

    Declaration

    Swift

    public init(decoder: DataDecoder = JSONDecoder(),
                emptyResponseCodes: Set<Int> = DecodableResponseSerializer.defaultEmptyResponseCodes,
                emptyRequestMethods: Set<HTTPMethod> = DecodableResponseSerializer.defaultEmptyRequestMethods)

    Parameters

    decoder

    The DataDecoder. JSONDecoder() by default.

    emptyResponseCodes

    The HTTP response codes for which empty responses are allowed. [204, 205] by default.

    emptyRequestMethods

    The HTTP request methods for which empty responses are allowed. [.head] by default.

  • Declaration

    Swift

    public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> T