Skip to content

Roy-wonji/AsyncURLSession

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AsyncURLSession

SPM Swift License Platform Hits

💁🏻‍♂️ iOS15+ 를 지원합니다.
💁🏻‍♂️ URLSession을 기반으로 하여 구현되었습니다.
💁🏻‍♂️ URLSession의 다양한 옵션을 지원합니다.

장점

✅ AsyncURLSession 사용하면, 네트워킹 코드를 좀더 간결하게 사용 할수 있어요!

기반

이 프로젝트는 URLSession을 기반으로 구현되었습니다.
보다 자세한 내용은 해당 라이브러리의 문서를 참고해 주세요

Swift Package Manager(SPM) 을 통해 사용할 수 있어요

let package = Package(
    ...
    dependencies: [
        .package(url: "https://github.com/Roy-wonji/AsyncURLSession.git", from: "1.0.2")
    ],
    ...
)
import AsyncURLSession

async/await만 사용하게 구현 Service 부분

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)
        }
    }
}

requestAsync 사용 부분

let provider = AsyncProvider<GitHub>()

 func getDate() async throws -> CurrentDate? {
    return try await provider.request(.getDate)
}

Log Use

로그 관련 사용은 LogMacro 해당 라이브러리에 문서를 참고 해주세요.

Auther

서원지(Roy) suhwj81@gmail.com

함께 만들어 나가요

개선의 여지가 있는 모든 것들에 대해 열려있습니다.
PullRequest를 통해 기여해주세요. 🙏

License

AsyncMoya 는 MIT 라이선스로 이용할 수 있습니다. 자세한 내용은 라이선스 파일을 참조해 주세요.
AsyncMoya is available under the MIT license. See the LICENSE file for more info.

About

AsyncURLSession

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages