创建 GET/POST 服务 Ocsigen
Creating GET/POST services Ocsigen
我正在使用 Ocsigen
构建一个应用程序,这个应用程序不会连接到数据库,目标是将内容从主网站复制到这里。 (我正在使用 curl 来执行 Get 请求)
所以我的问题是,我正在尝试对用户执行 "log in",我想构建一个服务,将 username
和 password
由用户介绍。然后我可以使用 username
和 password
向主网站发出 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))
我正在使用 Ocsigen
构建一个应用程序,这个应用程序不会连接到数据库,目标是将内容从主网站复制到这里。 (我正在使用 curl 来执行 Get 请求)
所以我的问题是,我正在尝试对用户执行 "log in",我想构建一个服务,将 username
和 password
由用户介绍。然后我可以使用 username
和 password
向主网站发出 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))