15.5 Summary
In this chapter, we looked at ways in which we can apply functional design to the problem of serving content with REST-based web services. We looked at how the WSGI standard leads to somewhat functional overall applications. We also looked at how we can embed a more functional design into a WSGI context by extracting elements from the request for use by our application functions.
For simple services, the problem often decomposes into three distinct operations: getting the data, searching or filtering, and then serializing the results. We tackled this with three functions: raw_data()
, anscombe_filter()
, and serialize()
. We wrapped these functions in a simple WSGI-compatible application to divorce the web services from the real processing around extracting and filtering the data.
We also looked at the way that web services’ functions can focus on the happy path and assume that all of the inputs are valid. If inputs are invalid, the ordinary Python exception handling...