in progress ...
- Create a ProviderConfiguration.
- Define yours enpoints.
- Instantiate NetworkProvider.
- Enjoy ππππ
struct CatFactProviderConfiguration: ProviderConfiguration {
var baseURL: URL {
return URL(string: "https://catfact.ninja")!
}
}
struct CatFactEndpoint: EndpointDefinition {
func makeRequest(_ urlRequestBuilder: URLRequestBuilder) -> URLRequest {
return urlRequestBuilder
.withPath("fact")
.build()
}
}
struct CatFact: Decodable {
let fact: String
let length: Int
}
let provider = NetworkApiProvider<CatFactProviderConfiguration>()
let endpoint = CatFactEndpoint()
do {
let cat: CatFact = try await provider.request(endpoint: endpoint)
print(cat.fact)
print(cat.endpoint)
} catch {
// capture any error
}