💁🏻♂️ iOS13+ 를 지원합니다.
💁🏻♂️ URLSession을 기반으로 하여 구현되었습니다.
💁🏻♂️ URLSession의 다양한 옵션을 지원합니다.
✅ AsyncURLSession 사용하면, 네트워킹 코드를 좀더 간결하게 사용 할수 있어요!
이 프로젝트는 URLSession을 기반으로 구현되었습니다.
보다 자세한 내용은 해당 라이브러리의 문서를 참고해 주세요
let package = Package(
...
dependencies: [
.package(url: "https://github.com/Roy-wonji/AsyncURLSession.git", from: "1.0.2")
],
...
)
import AsyncURLSession
import AsyncURLSession
protocol BaseTargetType : TargetType { }
extension BaseTargetType {
public var baseURL: URL {
return URL(string: BaseAPI.baseURL.apiDesc)!
}
public var headers: [String : String]? {
return APIHeader.baseHeader
}
}
import AsyncURLSession
public enum TrackService {
case trackEvent(event: Event)
}
extension TrackService : BaseTargetType {
public var path: String {
switch self {
case .trackEvent:
return TrackAPI.trackEvent.desc
}
}
public var method: AsyncURLSession.HTTPMethod {
switch self {
case .trackEvent:
return .post
}
}
public var task: AsyncURLSession.NetworkTask {
switch self {
case .trackEvent(let event):
return .requestParameters(parameters: event.toDictionary(), encoding: .json)
}
}
}
let provider = AsyncProvider<GitHub>()
func getDate() async throws -> CurrentDate? {
return try await provider.requestAsyncAwait(.getDate, decodeTo: CurrentDate.self)
}
로그 관련 사용은 LogMacro 해당 라이브러리에 문서를 참고 해주세요.
서원지(Roy) suhwj81@gmail.com
개선의 여지가 있는 모든 것들에 대해 열려있습니다.
PullRequest를 통해 기여해주세요. 🙏
AsyncMoya 는 MIT 라이선스로 이용할 수 있습니다. 자세한 내용은 라이선스 파일을 참조해 주세요.
AsyncMoya is available under the MIT license. See the LICENSE file for more info.