1

我目前正在尝试使用 Erlang 开发 REST API。我使用 OpenAPI (Swagger) 来定义 API,并希望使用他们的openapi-generator来创建存根和一些帮助代码。这也有效并生成了一些代码,但我找不到任何关于我必须从那里做什么的文档。

为了解释我的问题,我将参考他们为 erlang-server 生成代码的示例输出

我目前有两个主要问题:

  • 我找不到代码的入口点(例如 ainit/0start/0函数)
  • 我不确定我必须实现哪个函数才能在每个端点上执行我的代码。我认为我必须实现handle_request,但执行路径对我来说似乎有点奇怪。

实现哪个功能

openapi_router 中,它们定义openapi_pet_handler'AddPet'. 在该模块中,有一个名为的函数handle_request_json,它尝试填充请求并在 OK 的情况下执行openapi_logic_handler:handle_request(LogicHandler, ...)

openapi_logic_handler:handle_request(Handler, ...)接受该处理程序并执行Handler:handle_request(OperationID, Req, Context).. 这使我得出结论,我可能必须openapi_pet_handler:handle_request使用我的自定义代码来实现。

如何启动服务器

我检查了代码,它似乎cowboy用作 Web 服务器。至少它cowboy在生成的openapi.app.src. 但是,在rebar.config里面并没有提到牛仔。

在牛仔教程中,他们使用 erlang.mk 来构建他们的项目。这允许他们使用make run. 对于钢筋,这似乎是不可能的。我没有找到用于 rebar 启动程序的特定命令。如果您使用钢筋,您似乎必须知道入口点(初始化函数)。

但是,我无法在生成的存根代码中找到任何看起来可能是 init 函数的函数。

概括

有人可以解释使用 openapi-generator 为 erlang-server 生成的存根需要做什么吗?我是否必须设置自己的牛仔项目,然后以某种方式将存根链接到其中?如果是,如何?

4

0 回答 0