在 python 中是否有用于创建像金字塔这样的 Web 服务的良好 OCaml 库?

Is there a good OCaml lib for creating a web service like pyramid in python?

问题标题说明了一切。

我发现 python 中的 pyramid 非常容易使用。

在OCaml中,我知道Eliom,但猜的太重了。而且在客户端,我将使用 angular js 并且不需要在 OCaml 中编写浏览器页面。

有什么建议吗?

OWebl is a new project that I personally find very promising, and it looks like that it can suite your needs quite well. Other option, is to use cohttp directly or with opium

Eliom 不必是 "heavy";但我认为他们的文档存在轻微的公关问题……

这是一个最小的 Eliom 页面,当您访问路径 /aaa/bbb(来自 https://ocsigen.org/tuto/manual/basicwebsite)时,它只提供来自字符串的一些 HTML:

let f _ () =
  Lwt.return "<html><head><title>A</title></head><body>B</body></html>"

let main_service =
  Eliom_registration.Html_text.register_service
    ~path:["aaa"; "bbb"]
    ~get_params:Eliom_parameter.any
    f

您还需要服务器的基本配置:

<ocsigen>
  <server>
    <port>8080</port>

    <charset>utf-8</charset>

    <extension findlib-package="ocsigenserver.ext.staticmod"/>
    <extension findlib-package="ocsigenserver.ext.ocsipersist-dbm"/>
    <extension findlib-package="eliom.server"/>

    <host hostfilter="*">
      <static dir="static" />
      <eliommodule module="_build/foo.cmo" />
      <eliom/>
    </host>
  </server>
</ocsigen>

编译,运行服务器并尝试页面:

ocamlbuild -pkg eliom.server foo.cmo
ocsigenserver -v -c foo.conf

等待它说 ocsigenserver: main: Ocsigen has been launched (initialisations ok),然后打开 http://localhost:8080/aaa/bbb

这样使用,对我来说感觉不是很重,而且您可以轻松使用所需的最少部件。也就是说,在不了解您实际需要的情况下,很难说 Eliom 是否是最佳选择:-)