如何使用OpenAPI生成器中的erlang-server存根?

时间:2018-10-20 11:55:50

标签: erlang swagger openapi openapi-generator

我目前正在尝试使用Erlang开发REST API。我使用OpenAPI(Swagger)定义了API,并想使用其openapi-generator创建存根和一些帮助程序代码。这也可以工作,并且会生成一些代码,但是我从那里找不到任何关于我必须做什么的文档。

对于我的问题的解释,我将参考他们的sample output from code generation for erlang-server

我目前有两个主要问题:

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

要实现的功能

openapi_router中,他们将openapi_pet_handler定义为'AddPet'的处理程序。在that module中,有一个名为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运行代码。使用钢筋似乎无法实现。我没有找到钢筋启动程序的特定命令。如果使用钢筋,您似乎必须知道入口点(初始化函数)。

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

摘要

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

0 个答案:

没有答案