Summary
Trzy ścieżki dekodowania w Sources/OpenAPIDynamic/OpenAPIDynamic.swift mają trzy kontrakty na puste body.
decode(_:from:) przy nil rzuca DecodingError.noData.
sendRequest<T: Decodable> / sendRequestAndValidate<T: Decodable> robią decoder.decode(T.self, from: data ?? Data()) — nil staje się pustym Data() i wychodzi Swift.DecodingError.
sendRequestWithResponseBody<T: Decodable> przez data.map zwraca (response, nil) i nie rzuca.
README obiecuje DecodingError.noData przy braku body.
Why
Caller nie może polegać na jednym błędzie. decodingFailureHandler dostaje inny error niż helper decode(). Testy jednostkowe tego nie łapią.
Done means
Out of scope
Zmiana limitów maximumResponseBodyBytes. Live testy httpbin.
Summary
Trzy ścieżki dekodowania w
Sources/OpenAPIDynamic/OpenAPIDynamic.swiftmają trzy kontrakty na puste body.decode(_:from:)przynilrzucaDecodingError.noData.sendRequest<T: Decodable>/sendRequestAndValidate<T: Decodable>robiądecoder.decode(T.self, from: data ?? Data())—nilstaje się pustymData()i wychodziSwift.DecodingError.sendRequestWithResponseBody<T: Decodable>przezdata.mapzwraca(response, nil)i nie rzuca.README obiecuje
DecodingError.noDataprzy braku body.Why
Caller nie może polegać na jednym błędzie.
decodingFailureHandlerdostaje inny error niż helperdecode(). Testy jednostkowe tego nie łapią.Done means
sendRequest<T>isendRequestAndValidate<T>przydata == nilrzucająDecodingError.noDatasendRequestWithResponseBody<T>ma udokumentowany, testowany kontrakt nanilvs pusteData()MockURLProtocol: nil body i zero-byte body, osobnodecodingFailureHandlerdostaje ten sam error co callerOut of scope
Zmiana limitów
maximumResponseBodyBytes. Live testy httpbin.