Created
June 6, 2017 02:21
-
-
Save erdomke/9d79aa6c026c34151c6d7d2f5b997581 to your computer and use it in GitHub Desktop.
NancyRequestLifeCycle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="889.07" height="1111.2" viewBox="0 0 235.23308 294.00415"> | |
<defs> | |
<linearGradient id="a" gradientUnits="userSpaceOnUse" y2="1400.33" x2="932.56" y1="1292.67" x1="971.74"> | |
<stop offset="0" stop-color="#d16d2a"/> | |
<stop offset=".48" stop-color="#d16d2a"/> | |
<stop offset=".82" stop-color="#ed7d31"/> | |
<stop offset="1" stop-color="#ed7d31"/> | |
</linearGradient> | |
<linearGradient id="b" gradientUnits="userSpaceOnUse" y2="1400.33" x2="932.56" y1="1292.67" x1="971.74"> | |
<stop offset="0" stop-color="#d16d2a"/> | |
<stop offset=".48" stop-color="#d16d2a"/> | |
<stop offset=".82" stop-color="#ed7d31"/> | |
<stop offset="1" stop-color="#ed7d31"/> | |
</linearGradient> | |
<linearGradient xlink:href="#a" id="c" gradientUnits="userSpaceOnUse" x1="971.74" y1="1292.67" x2="932.56" y2="1400.33" gradientTransform="translate(.422 34.135)"/> | |
<linearGradient xlink:href="#a" id="d" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 9.525)" x1="971.74" y1="1292.67" x2="932.56" y2="1400.33"/> | |
<linearGradient xlink:href="#b" id="e" gradientUnits="userSpaceOnUse" x1="971.74" y1="1292.67" x2="932.56" y2="1400.33" gradientTransform="translate(.422 78.47)"/> | |
<linearGradient xlink:href="#b" id="f" gradientUnits="userSpaceOnUse" x1="971.74" y1="1292.67" x2="932.56" y2="1400.33" gradientTransform="translate(15.41 103.417)"/> | |
<linearGradient xlink:href="#a" id="g" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 9.525)" x1="971.74" y1="1292.67" x2="932.56" y2="1400.33"/> | |
<linearGradient xlink:href="#b" id="h" gradientUnits="userSpaceOnUse" gradientTransform="translate(15.537 103.417)" x1="971.74" y1="1292.67" x2="932.56" y2="1400.33"/> | |
</defs> | |
<path d="M-16-128.78h84.16v-13.47H-16z" fill="url(#c)" fill-rule="evenodd" transform="translate(97.61 286.26)"/> | |
<path d="M62.54 19.68l-11.1 12.7v-6.35H3.8v-12.7h47.63V6.98z" fill="none" stroke="#000" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<text style="line-height:3.70416665px;-inkscape-font-specification:Verdana" x="-86.32" y="-265.15" font-size="5.64" font-family="Verdana" letter-spacing="0" word-spacing="0" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="-86.32" y="-265.15" rotate="0 0 0 0 0 0 0 0 0 0 0 0 0">HTTP Request</tspan> | |
</text> | |
<path d="M65.4 287.57l-8.2-4.24h4.12L62.9 16.1l8.25.02-1.6 267.23h4.13z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<text style="line-height:6px;-inkscape-font-specification:Verdana;text-align:start" x="-40.06" y="-282.13" font-size="5.64" font-family="Verdana" letter-spacing="0" word-spacing="0" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="-40.06" y="-282.13" style="text-align:start">INancyEngine</tspan><tspan x="-40.06" y="-276.13" style="text-align:start">Processing Pipeline</tspan> | |
</text> | |
<path d="M77.36 35.4h92.66V23.1H77.36z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<text style="line-height:4.30000019px;-inkscape-font-specification:Verdana;text-align:center" x="25.96" y="-257.97" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.71" y="-257.97" style="text-align:center" fill="#fff">Create NancyContext with </tspan><tspan x="25.96" y="-253.67" style="text-align:center" fill="#fff">INancyContextFactory</tspan> | |
</text> | |
<path d="M77.36 56.2h92.66V40.07H77.36z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="25.87" y="-241.45" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.62" y="-241.45" style="text-align:center" fill="#fff">Return static content (e.g. *.js, *.css) </tspan><tspan x="25.87" y="-236.95" style="text-align:center" fill="#fff">based on StaticContentsConventions</tspan><tspan x="25.87" y="-232.45" style="text-align:center" fill="#fff">defined in the INancyBootstrapper</tspan> | |
</text> | |
<path d="M73.22 53.25l2.84-2.95v5.9z" fill="#a6b7cd"/> | |
<path d="M77.36 74.33h92.66V62.48H77.36z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<text style="line-height:normal;-inkscape-font-specification:Calibri;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;text-transform:none;text-orientation:mixed;shape-padding:0" x="25.94" y="-197.95" font-size="4.23" font-family="Calibri" text-anchor="middle" white-space="normal" fill="#3c4988" stroke-width=".35" transform="translate(97.61 286.26)"> | |
<tspan x="25.94" y="-197.95" style="line-height:normal;-inkscape-font-specification:Calibri;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;text-transform:none;text-orientation:mixed;shape-padding:0">Dispatch request with IRequestDispatcher</tspan> | |
</text> | |
<path d="M73.07 71.38l2.84-2.94v5.9z" fill="#a6b7cd"/> | |
<path d="M77.36 207.32h92.66V82.82H77.36z" fill="none" stroke="#3c4988" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<path d="M81.6 105.32h84.17v-12.1H81.6z" fill="#3c4988" fill-rule="evenodd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.06" y="-218.92" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.06" y="-218.92" style="text-align:center" fill="#fff">Evaluate BeforeRequest hooks configured</tspan><tspan x="26.06" y="-214.42" style="text-align:center" fill="#fff">in the INancyBootstrapper</tspan> | |
</text> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="25.87" y="-188.05" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.62" y="-188.05" style="text-align:center" fill="#fff">Match request to defined routes </tspan><tspan x="25.87" y="-183.55" style="text-align:center" fill="#fff">using IRouteResolver.</tspan> | |
</text> | |
<path d="M-26.55-247.57l5.1-2.95v5.9z" transform="matrix(.55556 0 0 1 88.086 402.102)" fill="url(#d)"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.08" y="-136.59" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.82" y="-136.59" style="text-align:center" fill="#fff">Evaluate BeforeRequest hooks </tspan><tspan x="26.08" y="-132.09" style="text-align:center" fill="#fff">configured in the NancyModule</tspan> | |
</text> | |
<path d="M81.6 139.88h84.17v-17.75H81.6z" fill="#3c4988" fill-rule="evenodd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.06" y="-158.57" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.81" y="-158.57" style="text-align:center" fill="#fff">Route data is stored as </tspan><tspan x="26.06" y="-154.07" style="text-align:center" fill="#fff">NancyContext.ResolvedRoute and</tspan><tspan x="26.06" y="-149.57" style="text-align:center" fill="#fff">NancyContext.Parameters</tspan> | |
</text> | |
<path d="M81.6 169.44h84.17v-8.75H81.6z" fill="#d16d2a" fill-rule="evenodd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="25.93" y="-120.02" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="25.93" y="-120.02" style="text-align:center" fill="#fff">Invoke route using IRouteInvoker</tspan> | |
</text> | |
<path d="M81.75 116.98h83.88v-11.66H81.75z" fill="none" stroke="#3c4988" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.08" y="-176.19" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" fill="#3c4988" stroke-width=".35" transform="translate(97.61 286.26)"> | |
<tspan x="26.82" y="-176.19" style="text-align:center">The module is constructed </tspan><tspan x="26.08" y="-171.69" style="text-align:center">using the IModuleBuilder</tspan> | |
</text> | |
<path d="M81.75 186h83.88v-16.56H81.75z" fill="none" stroke="#d16d2a" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.08" y="-111.85" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" fill="#d16d2a" stroke-width=".35" transform="translate(97.61 286.26)"> | |
<tspan x="26.82" y="-111.85" style="text-align:center">The ResponseNegotiator uses the </tspan><tspan x="26.08" y="-107.35" style="text-align:center">appropriate IResponseProcessor</tspan><tspan x="26.08" y="-102.85" style="text-align:center">to create the response.</tspan> | |
</text> | |
<path d="M-16-84.45h84.16v-13.47H-16z" fill="url(#e)" fill-rule="evenodd" transform="translate(97.61 286.26)"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.08" y="-92.25" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.82" y="-92.25" style="text-align:center" fill="#fff">Evaluate AfterRequest hooks </tspan><tspan x="26.08" y="-87.75" style="text-align:center" fill="#fff">configured in the NancyModule</tspan> | |
</text> | |
<path d="M167.68 204.65c2.62-.94 4.43-2.3 5.08-3.8v-39.6c5.63 0 5.63 0 0 0v-15.23c-.65-1.52-2.46-2.88-5.08-3.8" fill="none" stroke="#525252" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<path d="M177.6 172.3l12.3-7.5 12.32 7.5-12.3 7.5z" fill="#d16d2a"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="92.12" y="-112.38" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="92.12" y="-112.38" style="text-align:center" fill="#fff">if error</tspan> | |
</text> | |
<path d="M-1-59.5h84.14v-13.47H-1z" fill="url(#f)" fill-rule="evenodd" transform="translate(97.61 286.26)"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="41.06" y="-67.31" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="41.81" y="-67.31" style="text-align:center" fill="#fff">Evaluate OnError hooks </tspan><tspan x="41.06" y="-62.81" style="text-align:center" fill="#fff">configured in the NancyModule</tspan> | |
</text> | |
<path d="M-26.55-247.57l5.1-2.95v5.9z" transform="matrix(.55556 0 0 1 105.992 471.384)" fill="url(#g)"/> | |
<path d="M172.92 172.4h4.16M190.1 181.47v38.37h-6.8" fill="none" stroke="#525252" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<path d="M77.36 245.42h92.66v-11.85H77.36z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.06" y="-47.83" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.06" y="-47.83" style="text-align:center" fill="#fff">Evaluate AfterRequest hooks configured</tspan><tspan x="26.06" y="-43.33" style="text-align:center" fill="#fff">in the INancyBootstrapper</tspan> | |
</text> | |
<path d="M200.1 249.1c2.6-.95 4.42-2.3 5.07-3.82v-165c5.63 0 5.63 0 0 0V65.06c-.65-1.52-2.46-2.87-5.08-3.8" fill="none" stroke="#525252" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<path d="M210.62 213.23l12.3-7.5 12.3 7.5-12.3 7.5z" fill="#a6b7cd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="125.13" y="-71.44" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="125.13" y="-71.44" style="text-align:center" fill="#fff">if error</tspan> | |
</text> | |
<path d="M129.34 267.6h84.15V254.1h-84.16z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<path d="M123.98 264.65l2.83-2.95v5.9z" fill="#a6b7cd"/> | |
<path d="M205.66 213.23h4.16M222.83 222.3v38.37h-6.8" fill="none" stroke="#525252" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="73.6" y="-26.46" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="74.34" y="-26.46" style="text-align:center" fill="#fff">Evaluate OnError hooks configured </tspan><tspan x="73.6" y="-21.96" style="text-align:center" fill="#fff">in the INancyBootstrapper</tspan> | |
</text> | |
<path d="M77.36 279.62h92.66v-8.82H77.36z" fill="#a6b7cd" fill-rule="evenodd"/> | |
<path d="M73.15 276.68l2.83-2.95v5.9z" fill="#a6b7cd"/> | |
<text style="line-height:4.5px;-inkscape-font-specification:Verdana;text-align:center" x="26.06" y="-9.87" font-size="4.23" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="26.06" y="-9.87" style="text-align:center" fill="#fff">Evaluate IStatusCodeHandler(s)</tspan> | |
</text> | |
<path d="M.18 281.22l11.1 12.7v-6.35h47.63v-12.7H11.3v-6.35z" fill="none" stroke="#000" stroke-width=".26" stroke-linecap="square" stroke-miterlimit="2"/> | |
<text style="line-height:3.70416665px;-inkscape-font-specification:Verdana" x="-86.02" y="-3.05" font-size="5.64" font-family="Verdana" letter-spacing="0" word-spacing="0" stroke-width=".26" transform="translate(97.61 286.26)"> | |
<tspan x="-86.02" y="-3.05" rotate="0 0 0 0 0 0 0 0 0 0 0 0 0 0">HTTP Response</tspan> | |
</text> | |
<text style="line-height:3.70416665px;-inkscape-font-specification:Verdana" x="62.61" y="-29.52" transform="rotate(-90 191.935 94.326)" font-size="5.64" font-family="Verdana" letter-spacing="0" word-spacing="0" stroke-width=".26"> | |
<tspan x="62.61" y="-29.52" fill="#fff">INancyEngine configured with INancyBootstrapper</tspan> | |
</text> | |
<path fill="#3c4988" d="M49.77 83.2h8.82v56.13h-8.83z"/> | |
<text style="line-height:3.70416665px;-inkscape-font-specification:Verdana;text-align:center" x="174.98" y="-41.95" transform="rotate(-90 191.935 94.326)" font-size="5.64" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26"> | |
<tspan x="174.98" y="-41.95" style="text-align:center" fill="#fff">Routing</tspan> | |
</text> | |
<path fill="url(#h)" d="M-47.84-142.12h8.82v81.52h-8.82z" transform="translate(97.61 286.26)"/> | |
<text style="line-height:3.70416665px;-inkscape-font-specification:Verdana;text-align:center" x="101.22" y="-41.85" transform="rotate(-90 191.935 94.326)" font-size="5.64" font-family="Verdana" letter-spacing="0" word-spacing="0" text-anchor="middle" stroke-width=".26"> | |
<tspan x="101.22" y="-41.85" style="text-align:center" fill="#fff">NancyModule</tspan> | |
</text> | |
</svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment