Closed swrobel closed 3 months ago
Positional args were at the time slightly more efficient and predictable than kwargs, but I'd be open to changing this if you think there is a significant improvement to interface ergonomics.
I've changed Async::HTTP::Client
and Async::HTTP::Server
to use keyword arguments.
I'm not sure we can easily change these methods without breaking a ton of stuff.
If we think the ergonimics outweighs the overhead, something like this can work:
def get(_headers = nil, _body = nil, headers: _headers, body: _body)
# ...
end
and be backwards compatible. As long as the performance cost is insignificant, I'd be willing to accept this for the def get
/ post
/ patch
convenience methods for Async::HTTP::Internet
(but probably not call
).
Okay, this is now supported.
See https://socketry.github.io/protocol-http/releases/index#request%5B%5D-and-response%5B%5D-keyword-arguments for details. It works for all methods including Internet#call
.
I'm curious why the decision was made to take positional, rather than keyword args in a modern library like this.
seems preferable to