MoyaAPIClient

1.0.1

APIClient based on Moya
fummicc1/MoyaAPIClient

What's New

1.0.1

2023-01-14T15:57:02Z

What's Changed

  • Create swift.yml
  • Improve APIClientError

Full Changelog: 1.0.0+readme...1.0.1

MoyaAPIClient

This library is super simple APIClient based on Moya.

Installation

Add below line to your Package.swift.

.package(url: "https://github.com/fummicc1/MoyaAPIClient", .upToNextMajor(from: "1.0.0")),

and use MoyaAPIClient library.

.product(name: "MoyaAPIClient", package: "MoyaAPIClient"),

Usage

  1. Define your TargetType
import Moya

public enum APIRequest {
    case index(text: String)
}

extension APIRequest: TargetType {
    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
    }
}
  1. Build APIClient with defined Target
let apiClient = APIClientImpl<APIRequest>
// you can also hide concrete type.
// let apiClient: any APIClient<APIRequest> = APIClientImpl<APIRequest>
  1. Call api request
public struct Response: Decodable {
    public let results: [Result]
}

public extension Response {
    struct Result: Decodable {
        // ...
    }
}

let resppnse: Response = try await apiClient.request(with: .index(text: message))

Contributing

Pull requests, bug reports and feature requests are welcome 🚀

License

MIT LICENSE

Description

  • Swift Tools 5.7.0
View More Packages from this Author

Dependencies

Last updated: Mon Jan 16 2023 23:10:37 GMT-0500 (GMT-05:00)