This library is super simple APIClient based on Moya.
Add below line to your Package.swift
.
.package(url: "https://github.com/fummicc1/MoyaAPIClient", .upToNextMajor(from: "1.1.0")),
and use MoyaAPIClient
library.
.product(name: "MoyaAPIClient", package: "MoyaAPIClient"),
- Define your
APITarget
(APITarget
conforms toMoya.TargetType
)
import Moya
public enum APIRequest {
case index(text: String)
}
extension APIRequest: APITarget {
public var baseURL: URL {
URL(string: "https://example.com")!
}
public var path: String {
switch self {
case .index:
return "/"
}
}
public var method: Moya.Method {
switch self {
case .index:
return .get
}
}
public var task: Moya.Task {
switch self {
case let .index(text):
return .requestParameters(
parameters: [
"text": text
],
encoding: URLEncoding.default
)
}
}
public var headers: [String : String]? {
nil
}
}
- Call api request
public struct Response: Decodable {
public let results: [Result]
}
public extension Response {
struct Result: Decodable {
// ...
}
}
let request: APIRequest = .index(text: "message")
let resppnse: Response = try await request.send()
Pull requests, bug reports and feature requests are welcome 🚀