Генерировать исходный код JS из экземпляра объекта JS

#javascript #axios #code-generation

#javascript #axios #генерация кода

Вопрос:

Я использую openapi-client-axios для генерации экземпляра axios из файла спецификации open-api. Когда мое приложение запустится, оно запросит спецификацию open-api, и библиотека сгенерирует из нее экземпляр axios. Теперь я хотел бы удалить зависимость времени выполнения от моей спецификации open-api и вместо этого сохранить созданный экземпляр.

Есть ли способ создать конструктор прототипов из объекта JS? Я хотел бы добиться чего-то подобного:

 generateJSCodeFrom(axiosInstance);
 

Output.js:

 function GeneratedAxiosClient() {
  
}

GeneratedAxiosClient.prototype.getById = function(id) {
  return axios.get("localhost:8080/people", {id});
};
 

Ответ №1:

Существует ряд генераторов кода для генерации клиентского кода из спецификаций OpenAPI. Вы можете использовать их во время компиляции или разработки для создания клиента, поэтому вам не нужно загружать спецификацию OpenAPI во время выполнения. Конечно, это также означает, что вы должны регулярно проверять созданный вами клиент на наличие обновлений в случае изменения API.

Некоторые инструменты, которые генерируют клиенты OpenAPI:

В npm также есть модуль-оболочка для OpenAPITools, который вы можете интегрировать в свой процесс сборки JS.