Подтвердить что ты не робот

Что такое Elixir Plug?

Как новичок как для Elixir, так и для веб-домена вообще (без использования веб-инфраструктуры), я хотел бы знать, что такое Plug? Насколько я понимаю, Cowboy - это веб-сервер (хотя в Erlang, а не Elixir), а Phoenix - это основа для создания веб-приложений, но куда входит Plug? Является ли это абстракционным слоем между двумя или, возможно, подключаемой системой на том же уровне абстракции, что и Phoenix?

4b9b3361

Ответ 1

Является ли это абстракционным слоем между двумя

Да, точно! Plug предназначен как универсальный адаптер для разных веб-серверов. В настоящее время мы поддерживаем только Cowboy, но есть работа для поддержки других.

Plug также определяет, как разные компоненты должны быть подключены друг к другу. Подобно Rack в Ruby, WSGI в Python, Ring в Clojure и т.д.

Ответ 2

Думайте о вилках как о конвейере инструкций. Назначение штекеров состоит в том, чтобы взять коннект, изменить его и затем вернуть измененный коннект. Вы можете использовать плагины для множества вещей, от присоединения заголовков к запросам до проверки того, что пользователь прошел аутентификацию, перед рендерингом определенных вещей. В моем текущем проекте я использую плагины для обработки моих запросов, а также для аутентификации.