I'm opening this issue so we can further discuss approaches to A) splitting the middleware into separate functions and B) supporting additional frameworks. Here are some initial thoughts:
Note: For serverless environments, it may be possible to just use a existing framework like express and wrap it so explicit support for serverless may not be necessary
What features do we want to eventually support? Any potential changes to the API should be considered in the context of these features’ eventual implementation.
What steps in the “request pipeline” should be split into individual middleware?
Parse
Validate
Execute
Format response
How do we persist state between middleware? For example, does each supported framework allow us to arbitrarily mutate the incoming request object?
How do we account for differences between frameworks?
Publish individual sets of middleware for each support framework
Create a generic interface (like this library does)
How do we account for shared configuration between the different middleware?
Would it make sense to have a single function that accepts the shared config and then returns a set of middleware functions or middleware generator functions?
I'm opening this issue so we can further discuss approaches to A) splitting the middleware into separate functions and B) supporting additional frameworks. Here are some initial thoughts:
Goals
Questions