diff --git a/docs/source/theory/request_life_cycle.rst b/docs/source/theory/request_life_cycle.rst index 91ce478..be45273 100644 --- a/docs/source/theory/request_life_cycle.rst +++ b/docs/source/theory/request_life_cycle.rst @@ -2,38 +2,55 @@ Request Life Cycle ================== This section describes the sequence of events happening for each request -answered by the User HTTP Interface. +answered by the `User HTTP Interface`. .. image:: ../_static/request_life_cycle.png -1. The user makes a request to the User HTTP Interface +1. request + + The user makes a request to the `User HTTP Interface`. - The request is matched against the route table - ``kapow`` provides a `HANDLER_ID` to identify this request and don't mix it with other requests that could be running concurrently. -2. ``kapow`` spawns the binary specified as entrypoint in the matching route +2. spawn - The default entrypoint is /bin/sh; we'll explain this workflow for now. + ``kapow`` spawns the executable specified as entrypoint in the matching + route. + + The default entrypoint is ``/bin/sh``; we'll explain this workflow for now. The spawned entrypoint is run with the following variables added to its environment: - ``KAPOW_HANDLER_ID``: Containing the `HANDLER_ID` - - ``KAPOW_DATAAPI_URL``: With the URL of the `data interface` - - ``KAPOW_CONTROLAPI_URL``: With the URL of the `control interface` + - ``KAPOW_DATAAPI_URL``: With the URL of the `Data HTTP Interface` + - ``KAPOW_CONTROLAPI_URL``: With the URL of the `Control HTTP Interface` -3. During the lifetime of the shell, the request and response resources are available via these commands: +3. ``kapow set /response/body banana`` + + During the lifetime of the shell, the request and response resources are + available via these commands: - ``kapow get /request/...`` + - ``kapow set /response/...`` - These commands use the aforementioned environment variables to read data from the user request and to write the response. + - These commands use the aforementioned environment variables to read data from + the user request and to write the response. -4. The shell dies -5. ``kapow`` finalizes the original request + - They accept data either as arguments or from stdin. + +4. exit + + The shell dies. + +5. response + + ``kapow`` finalizes the original request. .. todo::