Rascal使用webserver模块

时间:2016-12-08 15:52:44

标签: rascal

我目前正在研究Rascal的稳定版本,我想生成Rascal网络服务器来使用javascript函数来提供我的html模板。 查看Webserver模块,我无法看到如何使用serve函数来使用Web服务器。它要求一个位置(我假设该位置类似于|http://localhost:8080|)和一个类型为Response (Request)的回调但该类型是什么?我不知道如何创建这种类型以及它究竟是什么类型。

2 个答案:

答案 0 :(得分:2)

如果没有关于此模块的文档,您所能做的就是阅读源代码。在Eclipse浏览器中,可以访问库(由小jar图标表示),您可以在util::Webserver找到ResponseRequest类型的定义。

基本上Request是一个回调函数,所有HTTP头和东西都作为参数,Response是一个包含备用响应类型(文件,字符串等)的包装器。

请注意,当前版本与您使用的稳定版本有很大不同,因此在github上阅读代码无济于事。

答案 1 :(得分:2)

类型

Response (Request) callback
是一个函数,例如:

Response (Request r) { 
    return response(...);
}

这个函数是一个匿名函数(它没有名称),你可以将它作为参数传递给serve函数,你也可以将它定义为带有名称的普通函数,只需将该函数的名称作为参数。

所以这可能有用:

serve(|http://localhost:8080|, 
           Response (Request r){ 
               return response("Hello world"); 
           }):

由于Webserver.rsc中有工厂方法

Response response(str content)
,因此会从字符串参数中为您创建响应。