Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Roy-wonji/AsyncURLSession

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

No packages published

Languages

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /