Liking cljdoc? Tell your friends :D

Terminology

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.

chain provider

Creates and executes an interceptor chain, with some behaviors reflecting a specific domain - the normal domain is processing HTTP requests.

clj

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.

context map

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.

core.async

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.

handler

A simple function that is passed a request map and returns a response map; handlers are converted to interceptors internally.

interceptor

An interceptor is the basic unit of work in Pedestal, a combination of specific functions related to handling a request or generating a response.

interceptor chain

A pipeline of interceptors, setup and executed by a chain provider.

Leiningen

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.

Maven repository

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.

REPL

The Read Eval Print Loop: reading Clojure input, evaluating it, and printing the result. Clojure excels at interactive development.

request map

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.

response 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.

route

A mapping of an HTTP Verb (such as GET or POST) and a URL path to a specific set of interceptors.

router

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.

routing

The process of mapping an incoming request to a route, using a router and a routing specification.

routing interceptor

An interceptor whose job is to perform routing; the routing interceptor is constructed from a routing specification and a router implementation.

routing specification

A concise list of routing data, in one of several formats. A routing specification is converted into a routing table.

routing table

A verbose, expanded version of routes that can be used by a router.

server

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.

service map

The reference:service-map.adoc is a collection of data that is used to setup request routing and interceptors, and ultimately create a server.

servlet

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.

servlet interceptor

A chain provider specific to handling HTTP requests from a servlet.

SLF4J

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