Description
In light of https://github.com/swift-server/async-http-client/pull/227/files#r429299831 and a number of long discussions and pondering about this...
I think we'll get the best APIs and outcome for all server libs if we stick to one style, and the "context last" indeed has some gains in Swift... I can go in depth about what convinced me today after hours of chatting with Johannes and looking at my own APIs.
This proposes to reshape the API to become:
Lambda.run { (payload: String, context, callback) in
// this perhaps makes most sense as consistent with "last,
// but before trailing closures (regardless who calls them)"?
// OR?
Lambda.run { (payload: String, callback, context) in
and we'd encourage the same shape in APIs I work on myself, AsyncHTTPClient, and the Baggage / Context work that's ongoing with GSoC/Moritz. (Swift gRPC already fits).
(Pretty sure people have strong feelings about this so we can talk it over?)
Specific rule wise I think we'd end up with:
- "last"
- but before trailing closures
Believe me, it took a lot of convincing for me to change my mind... As long as we end up on the same style there will be great benefits for consistency of looks of server swift code though.