yonaskolb / NetworkRequest

Swift networking library for easily defining, executing, and mocking network requests

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NetworkRequest

A simple networking library for easily defining, executing and mocking network requests.

struct GetPosts: JSONDecodableRequest {  
    let userId: Int

    typealias ResponseType = [Post]
    let path: String = "/posts"
    var urlParams: [String: Any?] { return ["userId": userId] }
}

struct Post: Decodable {
    let userId: Int
    let id: Int
    let title: String
    let body: String
}

let networkService = HTTPNetworkService(baseURL: "https://jsonplaceholder.typicode.com")
let request = GetPosts(userId: 2)

networkService.makeRequest(request) { result in
    switch result {
    case .success(let posts): // posts is [Post]
        print(posts) 
    case .failure(let error): // error is RequestError
        print(error)
    }
}

About

Swift networking library for easily defining, executing, and mocking network requests


Languages

Language:Swift 100.0%