Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tevelee/asynchttp

Swift networking with async/await
https://github.com/tevelee/asynchttp

async-await http networking swift

Last synced: 16 days ago
JSON representation

Swift networking with async/await

Awesome Lists containing this project

README

        

# AsyncHTTP

Generic networking library written using Swift async/await

```swift
let request = try HTTPRequest().configured { request in
request.path = "endpoint"
request.method = .post
request.body = try .json(["a": "b"])
request[header: .accept] = .application.json.appending(.characterSet, value: .utf8)
request[header: .authorization] = .bearer(token: "token")
request.addQueryParameter(name: "q", value: "search")
request.serverEnvironment = .production
request.timeout = 60
request.retryStrategy = .immediately(maximumNumberOfAttempts: 3)
}

let loader: some HTTPLoader = URLSession.shared.httpLoader()
.applyServerEnvironment()
.applyTimeout(default: 30)
.applyRetryStrategy()
.deduplicate()
.throttle(maximumNumberOfRequests: 2)

let response: HTTPResponse = try await loader.load(request)
let body: MyResponseStruct = try response.jsonBody()

print(request.formatted())
print(response.formatted())
```