我希望在OCaml中編寫一個Web服務服務器(使用http協議)。如何在OCaml中編寫Web服務器(服務)?
舉一個簡單的例子,我想寫一個http server
。用戶可以訪問它並提供參數,如http://myservice.com?i=1&j=2
。然後,我的服務器獲取請求和參數並返回結果calculate i+j
。
當然,我的服務對於計算部分來說會更加複雜。相反,這種計算簡單的例子,我真正需要做的是
- 訪問數據庫(MongoDB中)得到一些數據
- 訪問其他第三方網絡服務來獲取更多的數據
- 計算所有數據來獲得結果並返回給用戶。
所以,我也需要考慮parallelism
/multi-threading
,雖然我想先從簡單的案例開始。
我的問題是:
- 我應該使用哪個庫先設置這樣的
http server
?我已經調查Ocamlnet 3,並認爲這可能是一個不錯的選擇,但它缺乏好的教程,我仍然不知道如何使用nethttpd
或netplex
等 - 我應該如何設計的架構我Web應用程序?我知道OCaml不擅長
parallelism
,那麼我怎樣才能讓每個服務實例不被阻塞?
哦謝謝。你知道cohttp有什麼好的教程嗎? –
ocamlnet對我的目的太複雜了tbh,你是對的。但使用cohttp,我應該從哪裏開始? –
Cohttp更新,所以文檔更少。你最好的選擇是看例子。如果你不喜歡閱讀cohttp的來源,你應該堅持ocamlnet。請記住,cohttp還沒有達到1.0。同樣對於這樣的一般建議,您應該查看freenode上的#ocaml頻道,因爲stackoverflow並非真正用於這些常規建議問題。其他兩個選項是reddit.com/r/ocaml和郵件列表。 – rgrinberg