如何在OCaml中编写Web服务器(服务)?

时间:2013-06-12 15:34:40

标签: ocaml

我希望在OCaml中编写一个Web服务服务器(使用http协议)。

举个简单的例子,我想写一个http server。用户可以访问它并提供http://myservice.com?i=1&j=2之类的参数。然后我的服务器获取请求和参数calculate i+j并返回结果。


当然,我的服务对于计算部分会更复杂。而不是这个简单的计算例子,我真正需要做的是

  1. 访问数据库(MongoDB)以获取一些数据
  2. 访问其他第三方网络服务以获取更多数据
  3. 计算所有数据以获得结果并返回给用户。
  4. 所以,我还需要考虑parallelism / multi-threading,虽然我想先从简单的案例开始。


    我的问题是:

    • 我应该使用哪个库来首先设置这样的http server?我已经研究过 Ocamlnet 3 并认为它可能是一个很好的候选者,但它缺乏良好的教程,我仍然不知道如何使用nethttpdnetplex等。
    • 我应该如何设计我的网络应用程序的架构?我知道OCaml不擅长parallelism,那么我怎样才能使每个服务实例不被阻塞?

2 个答案:

答案 0 :(得分:6)

Matias Giovannini有一个很好的教程如何在ocamlnet中执行此操作:

http://alaska-kamtchatka.blogspot.ca/2012/10/how-to-write-simple-web-application.html

就我个人而言,我无法忍受ocamlnet,因此我会考虑使用它。 Ocamlnet更大,更成熟,但有更多的文档。

答案 1 :(得分:3)

我认为你应该试试Ocsigen