Public API for creating interceptors, and various utility fns for common interceptor creation patterns.
Public API for creating interceptors, and various utility fns for common interceptor creation patterns.
If true (the default) then functions converted to interceptor will get a default interceptor name based on the function class name.
If false, for compatibility, the interceptor will have no :name.
The system property io.pedestal.interceptor.disable-default-handler-names
(or environment variable PEDESTAL_DISABLE_DEFAULT_HANDLER_NAMES
)
if true, will default this to false.
If true (the default) then functions converted to interceptor will get a default interceptor name based on the function class name. If false, for compatibility, the interceptor will have no :name. The system property `io.pedestal.interceptor.disable-default-handler-names` (or environment variable `PEDESTAL_DISABLE_DEFAULT_HANDLER_NAMES`) if true, will default this to false.
(component->interceptor interceptor-name component)
Converts a component record into an interceptor. The component must implement
at least one of the Handler
, OnEnter
, OnLeave
, or OnError
protocols.
A component can implement the IntoInterceptor
protocol and base the
-interceptor
method on this function.
Returns an interceptor record.
Converts a component record into an interceptor. The component must implement at least one of the [[Handler]], [[OnEnter]], [[OnLeave]], or [[OnError]] protocols. A component can implement the [[IntoInterceptor]] protocol and base the `-interceptor` method on this function. Returns an interceptor record.
(definterceptor record-name fields & opts+specs)
Defines an interceptor as a Clojure record. This is specifically useful for components.
The interceptor's name will be the record's name as a namespace qualified keyword.
After the optional options map, and before the normal protocol/method specs, additional methods may be added:
(handle [this context])
(enter [this context])
(leave [this context])
(error [this context exception])
For each of these, definterceptor
will provide the matching protocol.
Example:
(definteceptor upcase []
(enter [_ context] (update-in context [:request :query-params :id] string/upper-case)))
The class name will match the record-name (which is typically kebab-cased).
That is (definterceptor foo-bar ...)
will generate the same class name as
(defrecord foo-bar ...)
even though this is not the normal Pascal Case naming
convention for most records.
The record implements the IntoInterceptor
protocol; see component->interceptor
.
The normal map->record
and ->record
construction functions are generated.
Defines an interceptor as a Clojure record. This is specifically useful for components. The interceptor's name will be the record's name as a namespace qualified keyword. After the optional options map, and before the normal protocol/method specs, additional methods may be added: - `(handle [this context])` - `(enter [this context])` - `(leave [this context])` - `(error [this context exception])` For each of these, `definterceptor` will provide the matching protocol. Example: ``` (definteceptor upcase [] (enter [_ context] (update-in context [:request :query-params :id] string/upper-case))) ``` The class name will match the record-name (which is typically kebab-cased). That is `(definterceptor foo-bar ...)` will generate the same class name as `(defrecord foo-bar ...)` even though this is not the normal Pascal Case naming convention for most records. The record implements the [[IntoInterceptor]] protocol; see [[component->interceptor]]. The normal `map->record` and `->record` construction functions are generated.
(handle _ request)
Handles a request map and returns a response map, or a channel that conveys the response map.
Handles a request map and returns a response map, or a channel that conveys the response map.
(interceptor t)
Given a value, produces and returns an Interceptor (Record)
t can be anything that extends the IntoInterceptor
protocol; notably, this includes functions, which
will be wrapped as interceptors, but act as handlers (a handler receives the request map and returns
the response map).
Given a value, produces and returns an Interceptor (Record) t can be anything that extends the [[IntoInterceptor]] protocol; notably, this includes functions, which will be wrapped as interceptors, but act as handlers (a handler receives the request map and returns the response map).
(interceptor-name n)
Ensures that an interceptor name (to eventually be the :name key of an Interceptor) is either a keyword or nil. Generally, interceptor names should be namespace-qualified keywords.
Ensures that an interceptor name (to eventually be the :name key of an Interceptor) is either a keyword or nil. Generally, interceptor names should be namespace-qualified keywords.
(interceptor? o)
Returns true if object o is an instance of the Interceptor record; the result of
invoking interceptor
.
Returns true if object o is an instance of the Interceptor record; the result of invoking [[interceptor]].
Conversion into Interceptor, ready for execution as part of an interceptor chain.
Conversion into Interceptor, ready for execution as part of an interceptor chain.
(-interceptor t)
Given a value, produce an Interceptor Record.
Given a value, produce an Interceptor Record.
(enter _ context)
Corresponds to the :enter phase of a standard interceptor; passed the context and returns the (new) context, or a core.async channel that will convey the new context.
Corresponds to the :enter phase of a standard interceptor; passed the context and returns the (new) context, or a core.async channel that will convey the new context.
(error _ context exception)
Corresponds to the :error phase of a standard interceptor; passed the context and an exception, and returns the (new) context, or a core.async channel that will convey the new context.
Corresponds to the :error phase of a standard interceptor; passed the context and an exception, and returns the (new) context, or a core.async channel that will convey the new context.
(leave _ context)
Corresponds to the :leave phase of a standard interceptor; passed the context and returns the (new) context, or a core.async channel that will convey the new context.
Corresponds to the :leave phase of a standard interceptor; passed the context and returns the (new) context, or a core.async channel that will convey the new context.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close