Simple, Fast and Easy.
VFNetwork is a protocol-oriented network layer that will help you assemble your requests in just a few steps.
Basically, you need two files to assemble your requests and put Base_URL, Protocol and Environment in your info.plist.
You have 3 types of Environments for you choose.
enum EnvironmentCase: String {
case production = "production"
case sandbox = "sandbox"
case mock = "mock"
}
Here you will configure your requests.
import VFNetwork
enum HomeAPI {
case joke
case categories
}
extension HomeAPI: APIBuilder {
var path: URLPath {
switch self {
case .joke:
return .plain("jokes/random")
case .categories:
return .plain("jokes/categories")
}
}
var httpMethod: HTTPMethods {
switch self {
case .joke, .categories:
return .get
}
}
var headers: HTTPHeader {
.custom([
.bearer("yourToken"),
.basic("yourBase64"),
.header("custom", "header")
])
}
var task: HTTPTask {
switch self {
case .joke, .categories:
return .request
}
}
And here you will execute your requests.
import VFNetwork
class HomeService: RequestService<HomeAPI> {
func getJoke(completion: @escaping (Result<JokeModel, Error>) -> Void) {
execute(.joke, responseType: JokeModel.self, completion: completion)
}
func getCategories(completion: @escaping (Result<CategoryModel, Error>) -> Void) {
execute(.categories, responseType: CategoryModel.self, completion: completion)
}
}
All documentation can be found in our Site including detailed api instructions and more.
VFNetwork is available through CocoaPods. To install it, simply add to your Podfile:
target 'YourApp' do
use_frameworks!
# Pods for YourApp
pod 'VFNetwork'
end
Victor Freitas | iOS Developer
VFNetwork is available under the MIT license. See the LICENSE file for more info.