用于Squeak/Pharo Web服务的Microframeworks

Ben*_*ack 5 frameworks web-services smalltalk squeak pharo

许多语言都有微框架,用于编写非常小的网站或Web服务,例如Flask for Python或Sinatra for Ruby.在吱吱声中,似乎没有任何等同物; Iliad,Seaside和AIDA都非常重,只需要一点点服务.完成此任务的首选方法是什么?直接将一个hanlder注入Comanche或Swazoo?

Sea*_*ris 6

"在这种特殊情况下,我确实有三个需要通过HTTP POST执行操作的URL;就是这样."

对于非常简单的情况,您可以像这样注册(或子类)Kom的HttpService(从类注释,请参阅更多信息/选项):

    (HttpService on: 8080 named: 'Example Http Service')
    onRequestDo: [ :httpRequest | SomeGlobal processRequest: httpRequest ];
    start
Run Code Online (Sandbox Code Playgroud)


小智 5

你也可以用茶壶.Teapot是基于Zinc HTTP组件的微型Web框架,侧重于简单性和易用性.它不到500行代码,不包括测试.

Teapot on
    GET: '/hi' -> 'Bonjour!';
    GET: '/hi/<user>' -> [:req | 'Hello ', (req at: #user)];
    GET: '/say/hi/*' -> (Send message: #greet: to: greeter);
    start.

(ZnEasy get: 'http://localhost:1701/hi/user1') entity string. "Hello user1"
Run Code Online (Sandbox Code Playgroud)

过滤器之前有可用的胡子模板,输出变换器.该框架已有详细记录.


Seb*_* N. 3

我想分享我认为更最新的信息(截至 2012 年底)。

锌成分

目前在 Pharo 1.4/2.0 中,HTTP 客户端/服务器的事实标准似乎是Zinc HTTP Components。最新的 Seaside 版本(3.0)也切换到了 Zinc。

当然,您可以直接使用 Zinc 来实现 Web 服务或提供网页服务。

特别查看类ZnServer并搜索类似Zn*Delegate(likeZnDefaultServerDelegateZnStaticFileServerDelegate)的类

海边休息

Seaside的最新版本包括对 RESTful Web 服务的支持。这可用于实现网络服务或提供网页。这非常简单。

有关更多信息,请参阅在线 Seaside 书籍的“REST 服务”章节。本章的重点是实现 Web 服务,但它也适用于网页。

鼠包

我还听说 Ratpack,一个由 Tim Felgentreff 开发的类似 sinatra 的网络框架。有两个存储库。我认为 github 是更新的。看这里:

此信息来自我最近发布的类似问题