Skip to content

Well Known PipelineContributors

nmosafi edited this page Oct 24, 2012 · 3 revisions

By default, OpenRasta executes a number of “well-known” pipeline contributors for every request. When you’re writing your own contributors, you need to be aware of this execution order so you can place your contributor at the most appropriate point in the pipeline. Here’s a list of the well known contributor types names – shown here in one possible order of execution – that you might need for a call to IPipelineRunner.Notify(Method).Before<TContributor>() or IPipelineRunner.Notify(Method).After<TContributor>(), and the default implementation.

Well-known name Default implementation Description
KnownStages.IBegin Bootstrapper Bootstraps the pipeline
none DigestAuthorizer Performs HTTP digest authorization
none HttpMethodOverrider Overrides the HTTP method through the X-HttpMethod-Override http header
none UriDecorators Processes the uri decorators (IUriDecorator)
KnownStages.IUriMatching ResourceTypeResolver Finds the resource key (or type) associated with a URI
KnownStages.IHandlerSelection HandlerResolver Finds all handlers to service the current request
KnownStages.IOperationCreation OperationCreator Returns the operations available on the handlers
KnownStages.IOperationFiltering OperationFilter Filters out any operation not matching certain rules (http name etc)
KnownStages.ICodecRequestSelection OperationCodecSelector Associates each operation with a codec that can process the incoming entity
KnownStages.IRequestDecoding OperationHydrator Calls the codec to read the data from the request entity given to the operation to execute
KnownStages.IOperationExecution OperationInvoker Invokes the selected operation on the handler
KnownStages.IOperationResultInvocation OperationResultInvoker Executes the result of the operation (the OperationResult)
KnownStages.ICodecResponseSelection ResponseEntityCodecResolver Selects a codec for the response entity
KnownStages.IResponseCoding ResponseEntityWriter Writes the response entity
none WebFormsPostbackEnabler Will be removed in 2.0RC