Skip to content

This (which supposed to be a library, later) is (currently) wrapping Alamofire ~v4.9.0 to simplify multiple route request. Supporting Codable.

License

Notifications You must be signed in to change notification settings

ahikmatf/HFNetworking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HFNetworking

Highly inspired by SENetworking and this blog post by Flawless iOS

This (which supposed to be a library, later) is (currently) wrapping Alamofire ~v4.9.0 to simplify multiple route request. Supporting Codable.

Todo:

  • Send basic ReST Request
  • Upload using Alamofire's multipart form data
  • simple example usage
  • example post request using codable
  • example upload multipart using codable
  • (inline) documentation
  • Remove Alamofire dependency
  • Handle multipart upload with proper naming and mimetypes
  • better error handling
  • cancel request
  • testing codes

Basic Usage

lazy var basicNetworkRouter: NetworkRouter = {
    let headers = [
        "Content-type": "multipart/form-data"
    ]

    let config = ApiDataNetworkConfig(
                      baseURL: URL(string: "https://jsonplaceholder.typicode.com")!, 
                      headers: headers, 
                      queryParameters: [:]
                 )

    return DefaultNetworkRouter(config: config)
}()
struct Todo: Decodable {
    let userId: Int
    let id: Int
    let title: String
    let completed: Bool
    
    private enum CodingKeys: String, CodingKey {
        case userId, id, title, completed
    }
}
struct Endpoints {
    static func getTodo(at index: Int) -> Endpoint<Todo> {
        return Endpoint(path: "todos/\(index)", method: .get, bodyEncoding: .jsonSerializationData )
    }
}
func getTodo(at index: Int) {
    let endpoint = Endpoints.getTodo(at: index)
    networkRouter.request(with: endpoint, completion: { (result) in
        switch result {
        case .success(let fmResponseDTO):
            // TODO: handle response upload
            break
        case .failure(let error):
            // TODO: handle response error
            break
        case .onProgress(let progress):
            // TODO: handle progress
            break
        }
    })
}

About

This (which supposed to be a library, later) is (currently) wrapping Alamofire ~v4.9.0 to simplify multiple route request. Supporting Codable.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published