Как использовать заглушки erlang-server из генератора OpenAPI? - PullRequest
0 голосов
/ 20 октября 2018

В настоящее время я пытаюсь разработать REST API с использованием Erlang.Я использовал OpenAPI (Swagger) для определения API и хотел использовать их openapi-generator для создания заглушек и некоторого вспомогательного кода.Это также работает, и генерируется некоторый код, но я не могу найти никакой документации о том, что я должен делать оттуда.

Для объяснения моей проблемы я буду ссылаться на их пример вывода из генерации кодадля erlang-server .

На данный момент у меня есть две основные проблемы:

  • Я не могу найти точку входа в код (например, init/0 или start/0 function)
  • Я не уверен, какую функцию я должен реализовать для выполнения моего кода на каждой конечной точке.Я думаю, что мне нужно реализовать 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в качестве веб-сервера.По крайней мере, он включает в себя зависимости до cowboy в сгенерированном openapi.app.src.Однако в rebar.config нет ссылки на ковбоя.

В уроке по ковбою они используют erlang.mk для создания своего проекта.Это позволяет им запускать код с make run.С арматурой это не представляется возможным.Я не нашел конкретной команды для арматуры для запуска программы.Похоже, вам нужно знать точку входа (функцию init), если вы используете rebar.

Однако я не могу найти ни одной функции, которая выглядит так, как будто это функция init в сгенерированном коде заглушки.

Резюме

Может кто-нибудь объяснить, что нужно сделать, чтобы использовать заглушку, сгенерированную openapi-generator для erlang-server?Должен ли я настроить свой собственный ковбойский проект и затем каким-то образом связать в него заглушки?Если да, то как?

...