I think the motivation for yada isn't very clear to a new developer, it seems to be identifying a subtle point that I'll admit I don't quite grasp. It might help to have a small motivation example just to orient people. It could even use psudeo code and exaggerate.
@drewverlee for me the selling points are: [1] fully async [2] deals with all the http protocol cruft so i don't have to [3] async multipart uploads
@mccraigmccraig thanks for the insight. I was referring to the claims that yada made about a systemic problem with how we build rest apis, I might understand it those arguments, but it would be nice to have a more concert (if a bit over simplified) example.
@drewverlee I think the best way to explain Yada's benefits is to compare and contrast with Ring and Pedestal. With both Ring and Pedestal you start with a web server and some endpoints. You then build up middleware to implement the parts of the HTTP spec that your application needs. This can lead to missing HTTP features or poorly optimised ones (e.g. doing a full GET to respond to a HEAD request, then throwing away the body).
In contrast, Yada starts with a stack of middleware which faithfully implement all* of the HTTP spec. It gives you a bunch of places to hook into the HTTP request lifecycle to customise the responses
See also https://juxt.pro/blog/posts/yada-2.html and https://github.com/juxt/yada/blob/master/dev/resources/comparison-guide.md
or correctly handling Accept headers, 🙂 little things add up I think
@danielcompton I really appreciate that explanation, thank you.