创建 GET/POST 服务 Ocsigen

Creating GET/POST services Ocsigen

我正在使用 Ocsigen 构建一个应用程序,这个应用程序不会连接到数据库,目标是将内容从主网站复制到这里。 (我正在使用 curl 来执行 Get 请求)

所以我的问题是,我正在尝试对用户执行 "log in",我想构建一个服务,将 usernamepassword 由用户介绍。然后我可以使用 usernamepassword 向主网站发出 GET 请求。

我的问题只有一个,我尝试了很多方法来构建保存这两个字符串的服务,但我想不出办法。

我做了很多不同的尝试,最后一次我做了类似以下的事情:

let save_data =
  Eliom_registration.Action.create
    ~meth:
      (Eliom_service.Post
         (Eliom_parameter.unit,
          Eliom_parameter.string "username"))
    ~path:Eliom_service.No_path
    (fun () username -> username)

基于 Ocsigen 在其网站上提供的示例,但我没有工作...

我创建了一个成功执行我创建的服务的表单,但该服务从未执行我需要的操作。

抱歉,如果我对情况的解释不当...知道如何解决这个问题吗?我走错路了?

谢谢!

PS:我也尝试过编辑 Ocsigen-Start src 文件夹中的 Os_services.connect_service,我想我必须为这种情况做一个 Post 服务,但是我又一次没能如愿以偿

我认为您正在寻找的是 Eliom_reference,也就是说,如果您希望保留信息以供日后使用。

https://ocsigen.org/eliom/api/server/Eliom_reference

我对 Eliom 有点生疏,但它看起来像这样:

let current_username : string option Eliom_reference.eref =
  Eliom_reference.eref ~scope:Eliom_common.default_process_scope None

let save_data = Eliom_registration.Action.create
  ~meth:(Eliom_service.Post
           (Eliom_parameter.unit,
            Eliom_parameter.string "username"))
  ~path:(Eliom_service.No_path)
  (fun () username -> Eliom_reference.set current_username (Some username))