Rascal Использование модуля веб-сервера
В настоящее время я работаю над стабильной версией Rascal и хочу создать веб-сервер Rascal для обслуживания моих html-шаблонов функциями javascript. Глядя на модуль веб-сервера, я не вижу, как использовать функцию serve для использования веб-сервера. Он запрашивает местоположение (я предполагаю, что это будет что-то вроде |http://localhost:8080|
) и обратный вызов, который имеет тип Response (Request)
но что это за тип? Я не знаю, как создать этот тип шрифта и что это такое.
2 ответа
Тип
Ответ (запрос) обратного вызоваэто функция, например:
Ответ (Запрос r) { обратный ответ (...); }
Эта функция является анонимной функцией (у нее нет имени), которую вы можете передать в функцию serve в качестве аргумента, вы также можете определить ее как обычную функцию с именем и просто поставить имя этой функции в качестве аргумента.
Так что это, вероятно, будет работать:
служить (| HTTP:// локальный:8080|, Ответ (Запрос r) { обратный ответ ("Привет, мир"); }):
Так как есть фабричный метод
Ответный ответ (содержание str)в Webserver.rsc это создаст для вас ответ из строкового аргумента.
В отсутствие документации по этому модулю все, что вы можете сделать, это прочитать исходный код. В браузере Eclipse библиотеки доступны (обозначены маленькими иконками jar), и вы найдете util::Webserver
там с определением Response
а также Request
типы.
В принципе Request
является функцией обратного вызова со всеми заголовками HTTP и прочее в качестве параметров и Response
является оберткой с альтернативными типами ответов (файлы, строки и т. д.).
Обратите внимание, что текущая версия немного отличается от используемой стабильной версии, поэтому чтение кода на github мало чем поможет.