Swiftpack.co - fummicc1/MoyaAPIClient as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by fummicc1.
fummicc1/MoyaAPIClient 1.1.1
APIClient based on Moya
⭐️ 0
🕓 41 weeks ago
iOS macOS
.package(url: "https://github.com/fummicc1/MoyaAPIClient.git", from: "1.1.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.1.0")),

and use MoyaAPIClient library.

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

Usage

  1. Define your APITarget (APITarget conforms to Moya.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
    }
}
  1. 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()

Contributing

Pull requests, bug reports and feature requests are welcome 🚀

License

MIT LICENSE

GitHub

link
Stars: 0
Last commit: 37 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Dependencies

Release Notes

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics