lack-mw/docs/trailing-slash.md
paku 56ef2a853d
Some checks failed
test / tests (ccl-bin) (push) Has been cancelled
test / tests (sbcl-bin) (push) Has been cancelled
Change middleware definitions from parameters to functions
2024-12-25 15:38:52 +09:00

1.3 KiB

trailing-slash middleware

This middleware handles Trailing Slash in the URL on a GET request.

append-trailing-slash redirects the URL to which it added the Trailing Slash if the content was not found. Also, trim-trailing-slash will remove the Trailing Slash.

Usage

Example of redirecting a GET request of /about/me to /about/me/.

(defpackage #:app/main
  (:use #:cl)
  (:import-from #:ningle)
  (:import-from #:lack)
  (:import-from #:lack-mw
                #:append-trailing-slash))
(in-package #:app/main)

(defparameter *raw-app* (make-instance 'ningle:app))
(setf (ningle:route *raw-app* "/about/me/")
      "With Trailing Slash")

(defparameter *app*
  (lack:builder
    (append-trailing-slash)
    *raw-app*))

Example of redirecting a GET request of /about/me/ to /about/me.

(defpackage #:app/main
  (:use #:cl)
  (:import-from #:ningle)
  (:import-from #:lack)
  (:import-from #:lack-mw
                #:trim-trailing-slash))
(in-package #:app/main)

(defparameter *raw-app* (make-instance 'ningle:app))
(setf (ningle:route *raw-app* "/about/me")
      "Without Trailing Slash")

(defparameter *app*
  (lack:builder
    (trim-trailing-slash)
    *raw-app*))

Note

It will be enabled when the request method is GET and the response status is 404.