Missing Clack Guide! Build a Web Application in Common Lisp Like a Pro! [EN Subs]
Channel: 40Ants – programming in Common Lisp [EN subs]
Date: 2023-10-16

В этом видео я рассказываю, как сделать сложное веб-приложение на Common Lisp и Clack.
Вы увидете, как можно добавлять к вашему приложению разные миддлевари, например логгирующие все HTTP запросы.
Так же я покажу, как примо с CL вебсервера раздавать статику и как объединить несколько Clack приложений
в одном сервере, чтобы каждое приложение отвечало по своему пути.

Заодно поясню разницу между Clack и Hunchentoot. Хочешь про это узнать - смотри ролик до конца!


*Таймкодики*:

00:29 What is Clack?
01:28 Comparing with WSGI
06:27 Adding Middlewares
08:35 Internals of LACK:BUILDER
12:35 Parametrizing Middlewares
16:35 Finding Middlewares
18:17 Adding Admin App
22:16 Serving Static
25:41 Adding Directory Index
30:25 Nested Clack Apps
33:14 Real World Example
39:30 Switching the HTTP Server
41:07 Final Words


*Ссылочки*:

- Final Version of the Code: https://github.com/40ants/example-clack-app/blob/master/src/final.lisp
- Python WSGI: https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface
- Spinneret - Шаблонизатор HTML: https://github.com/ruricolist/spinneret
- Tiny Routes: https://quickdocs.org/tiny-routes
- RealWorld Example in Common Lisp: https://github.com/jeko2000/tiny-routes-realworld-example-app

- Поддержать проект можно тут: https://boosty.to/40ants
- Подключиться к разработке OpenSource здесь: https://github.com/40ants
  
*Middlewares*:

- https://github.com/tamurashingo/lack-middleware-batis - Создаёт коннект к базе с помощью cl-batis.
- https://github.com/tamurashingo/lack-middleware-connection-pool - Тоже создаёт коннект, но с помощью cl-dbi и использует pool.
- https://github.com/rudolph-miller/lack-middleware-sql-logger - Логгирует сделанные SQL запросы.
- https://github.com/yanqirenshi/lack-middleware-validation - набор функций для валидации параметров запроса. Сама миддльварь просто показывает ошибки валидации.
- https://github.com/mtstickney/session-control - добавляет функции destroy-session и change-session-id к стандартной миддлевари сессий от Lack.