【问题标题】:Microframeworks for Squeak/Pharo web serviceSqueak/Pharo Web 服务的微框架
【发布时间】:2010-12-22 20:18:09
【问题描述】:

许多语言都有用于编写非常小的网站或 Web 服务的微框架,例如用于 Python 的 Flask 或用于 Ruby 的 Sinatra。在 Squeak 上,似乎没有任何等价物。 Iliad、Seaside 和 AIDA 都非常重,因为只是有一点服务。实现此目的的首选方法是什么?直接将处理程序注入 Comanche 或 Swazoo?

【问题讨论】:

  • 我发了一个类似的问题here

标签: web-services frameworks smalltalk squeak pharo


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您也可以使用teapot。 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"
    

    过滤器之前有可用的胡子模板、输出转换器。该框架有据可查。

    【讨论】:

      【解决方案3】:

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

      锌成分

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

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

      特别查看 ZnServer 类并搜索 Zn*Delegate 之类的类(例如 ZnDefaultServerDelegateZnStaticFileServerDelegate

      海边休息

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

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

      老鼠包

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

      此信息来自我最近发布的similar question

      【讨论】:

        【解决方案4】:

        您可以将 Swazoo 中的 SwazooSite 子类化为这样一个微型网站,但我认为您很快就会不再需要更多功能,因此从长远来看,直接从这三个框架之一开始是更好的选择。

        它们很重可能只是一种印象,并且缺乏更好的此类简单网站的使用文档。此外,如果您将框架视为黑盒,内部复杂但外部简单,那么我会说所有 Smalltalk Web 框架与其他 Web 框架相比都非常简单。

        【讨论】:

        • 在这种特殊情况下,我确实有三个 URL 需要通过 HTTP POST 执行操作;而已。它永远不会增长,因为它只是部署了三个不同的网络钩子并将它们输入 HipChat。并不是说我不能使用 Seaside 或 AIDA——我知道我可以——只是拖进来似乎有点傻。 AIDA 的整个站点框架只有三个 20 行的处理程序。
        • 如果您没有复杂的 HTML 来生成响应,那么子类化 SwazooSite 会更容易。例如,请参阅 SwazooDemoSite(最新测试版)和 SwazooServer>>prepareDemoSite 以获取提示,如何制作这样一个简单的网站
        猜你喜欢
        • 2011-06-16
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2018-11-19
        • 2020-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多