Оригинальный автор (s) | Лия Нойкирхен |
---|---|
Разработчик (и) | Джеймс Такер, Джош Пик, Хосе Валим, Майкл Феллингер, Аарон Паттерсон, Сантьяго Пасторино, Константин Хаазе |
Стабильный выпуск | 2.2.3 / 15 июня 2020 г.; 3 месяца назад (2020-06-15) |
Репозиторий | |
Операционная система | Кросс-платформенная |
Тип | Промежуточное ПО |
Лицензия | Лицензия MIT |
Веб-сайт | стойка.github.io |
Стойка - это модульный интерфейс между веб-серверами и веб-приложения, разработанные на языке программирования Ruby. В Rack интерфейсы прикладного программирования (API) для веб-фреймворков и промежуточного программного обеспечения упакованы в один вызов метода обработка HTTP-запросов и ответов.
Rack используется многими веб-фреймворками Ruby и библиотеками, такими как Ruby on Rails и Синатра. Он доступен как Ruby Gem. Многие приложения Ruby называются «совместимыми с стойкой».
Rack вдохновил аналогичные фреймворки в JavaScript (jack.js), Clojure, Perl (Plack ), Common Lisp (Clack) и .NET (OWIN ).
Характеристики стоечное приложение заключается в том, что объект приложения отвечает на метод вызова. Метод вызова принимает объект среды в качестве аргумента и возвращает объект ответа стойки.
Среда, принимаемая как Аргумент метода вызова относится к объекту, который имеет:. a) информацию о HTTP-запросе
Сюда входит такая информация, как:
b) Информация о стойке
Сюда входит такая информация, как
В случае, если приложение используется в качестве промежуточного программного обеспечения, среда может иметь объекты, которые будут предоставлять информацию о сеансе, возможности ведения журнала, информацию о размере данные, которые можно использовать для чтения и записи и т. д. В дополнение к этому сервер может хранить свои собственные данные в среде.
Объект сервера стойки возвращает ответ, который состоит из трех частей: состояния, заголовков и тела.
Rack :: Response предоставляет удобный интерфейс для создания ответа Rack. Класс Rack :: Response определен в lib / rack / response.rb. Чтобы использовать класс Response, создайте его экземпляр на уровне промежуточного программного обеспечения вниз по стеку. Его можно использовать для изменения файлов cookie.
Стойка упрощает добавление цепочки промежуточных компонентов компонентов между приложением и веб-сервером. В стойке можно использовать несколько компонентов промежуточного программного обеспечения, которые изменяют запрос / ответ перед передачей его следующему компоненту. Это называется стеком промежуточного программного обеспечения.
Сервер Rack по умолчанию добавляет несколько промежуточных программ для таких функций, как отображение исключения со всеми деталями, проверка запроса и ответов в соответствии со спецификацией стойки и т. Д.
Совместимое со стойкой приложение "Hello World " с синтаксисом Ruby :
# helloWorld.ru # Приложение, в котором определен метод вызова. class HelloWorld # Вызов метода, который вернет код состояния HTTP, тип содержимого и содержимое. def call (env) [200, {"Content-Type" =>"text / html; charset = utf-8"}, ["Hello World"]] end end
Можно инициировать сервер для вышеуказанного кода с помощью "rackup helloWorld.ru", доступ к которому можно получить по адресу http: // localhost: 9292 /. По умолчанию приложение Rack использует порт 9292.
.