Understanding Pedestal comes with the challenge of unpacking a number of terms - some specific to Pedestal, others inherited from the underlying technologies Pedestal extends from.
Creates and executes an interceptor chain, with some behaviors reflecting a specific domain - the normal domain is processing HTTP requests.
Also called "tools.deps", this is the name of a build tool for Clojure.
clj is more recent than Leiningen and has a very different model, but can perform the same key functions:
downloading dependencies (from Maven repositories and elsewhere) and running Clojure programs.
Projects with a deps.edn
file at the root are built using clj
.
The reference:context-map.adoc contains data about the ongoing request; a context map is passed to interceptors, which often return a modified copy of it. Ultimately, the incoming request map and response map are stored in the context map, along with much other data internal to Pedestal.
The {core_async} library is a Clojure extension that allows for efficient and expressive concurrent processing systems. The central artifact is a channel, a kind of data pipe that allows information to be conveyed between concurrently running light-weight processes.
A simple function that is passed a request map and returns a response map; handlers are converted to interceptors internally.
An interceptor is the basic unit of work in Pedestal, a combination of specific functions related to handling a request or generating a response.
A pipeline of interceptors, setup and executed by a chain provider.
Leiningen is a popular and pervasive Clojure build tool.
Projects with a project.clj
file at the root are built using Leiningen, which can download dependencies from a Maven repository
on demand.
A source of Java and Clojure packages, used by the Maven build tool, but also by virtually all other similar tools in the Java ecosystem.
The Read Eval Print Loop: reading Clojure input, evaluating it, and printing the result. Clojure excels at interactive development.
A map of data about the incoming HTTP request, including HTTP verb, URL, and parameters; this is all the information needed to route and process the request, and is available inside the context map.
A map of data used to construct and send the HTTP response. The response map is stored into the context map to trigger the sending of the response.
A mapping of an HTTP Verb (such as GET or POST) and a URL path to a specific set of interceptors.
A specific implementation (there are several in Pedestal, with different tradeoffs) responsible for identifying the route for an incoming request, using a routing table derived from a routing specification.
The process of mapping an incoming request to a route, using a router and a routing specification.
An interceptor whose job is to perform routing; the routing interceptor is constructed from a routing specification and a router implementation.
A concise list of routing data, in one of several formats. A routing specification is converted into a routing table.
A verbose, expanded version of routes that can be used by a router.
A server is responsible for low-level communication with HTTP clients; A server map is created from the service map, and can be used to start and stop the server. Many examples use the reference:jetty.adoc server implementation.
The reference:service-map.adoc is a collection of data that is used to setup request routing and interceptors, and ultimately create a server.
The standard Java term for a request handler - a servlet operates in the context of a server and processes incoming requests. In Pedestal, a generic servlet is created and configured, and feeds incoming requests into a pipeline of interceptors.
A chain provider specific to handling HTTP requests from a servlet.
The Simple Logging Facade for Java, a generic wrapper around several competing approaches to generating logging output. Pedestal’s api:*[ns=io.pedestal.log] logging support works with SLF4J.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close