بنقرة واحدة
winow
// Создаёт веб-приложения и маршруты на Winow (веб-сервер на OneScript и Autumn). Использовать при веб-сервере на OneScript, маршрутизации, контроллерах Winow.
// Создаёт веб-приложения и маршруты на Winow (веб-сервер на OneScript и Autumn). Использовать при веб-сервере на OneScript, маршрутизации, контроллерах Winow.
Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях.
Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.
Пишет и структурирует код на OneScript (BSL без 1С). Использовать при работе с файлами .os, проектами OneScript, packagedef, opm, директивой
| name | winow |
| description | Создаёт веб-приложения и маршруты на Winow (веб-сервер на OneScript и Autumn). Использовать при веб-сервере на OneScript, маршрутизации, контроллерах Winow. |
Минималистичный веб-сервер на нативном TCP и желудях Autumn. Чистый OneScript, без OneScript.web. Подходит для веб-приложений, микросервисов, моков API, отдачи статики и шаблонов.
Ограничения: нет HTTPS, не рассчитан на высокие нагрузки.
opm install winow
Зависимость: фреймворк Autumn. Требуется #Использовать autumn и каталог с классами-контроллерами.
#Использовать autumn
#Использовать winow
Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();
По умолчанию сервер слушает localhost:3333. Классы контроллеров должны лежать в каталоге, подключённом через #Использовать "путь", чтобы Autumn их загрузил.
Класс контроллера помечается &Контроллер("/базовый/путь"). Методы-обработчики — &ТочкаМаршрута("имя"). Имя точки маршрута становится частью URL: /базовый/путь/имя.
Минимальный пример (Hello World):
&Контроллер("/")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&ТочкаМаршрута("/")
Процедура Приветствие(Ответ) Экспорт
Ответ.УстановитьТипКонтента("html");
Ответ.ТелоТекст = СтрШаблон("<!DOCTYPE html><div>%1</div>", "Привет, мир!");
КонецПроцедуры
URL: http://localhost:3333/
Сигнатура метода может включать Запрос и Ответ. GET-параметры — в Запрос.ПараметрыИменные.
Пример: http://localhost:3333/greeter/getparams?name=Nikita&familia=ivanchenko
&Контроллер("/greeter")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&ТочкаМаршрута("getparams")
Процедура Приветствие(Запрос, Ответ) Экспорт
Ответ.УстановитьТипКонтента("html");
Имя = Запрос.ПараметрыИменные["name"];
Фамилия = Запрос.ПараметрыИменные["familia"];
Ответ.ТелоТекст = СтрШаблон("<!DOCTYPE html><div>Имя: %1</div><div>Фамилия: %2</div>", Имя, Фамилия);
КонецПроцедуры
Именные параметры из строки запроса можно передавать по имени в параметры метода точки маршрута (см. документацию Winow).
Ответ.УстановитьТипКонтента("html") — Content-Type.Ответ.ТелоТекст = "..." — тело ответа (строка).Дополнительно: работа с телом POST, cookie, сессии, статические файлы, шаблоны (jinja-подобный синтаксис), SSE, WebSocket, базовая авторизация и роли — в документации Winow.
&Контроллер("/путь").&ТочкаМаршрута("имя"), параметры (Ответ) или (Запрос, Ответ) Экспорт.Документация: autumn-library.github.io/winow.