Разработка электронов - Генерация API-клиента на основе определения чванства - PullRequest
0 голосов
/ 09 декабря 2018

Я очень новичок в электронике, пытаюсь использовать его для создания кроссплатформенного приложения, которое должно быть в состоянии работать на машинах.На стороне сервера у меня уже есть приложение, которое предоставляет REST API, задокументированное с помощью swagger.

Теперь я пытаюсь сгенерировать клиентскую заглушку для этого определения swagger, которую затем можно использовать с электроном.Как это достигается?Должен ли я просто сгенерировать код JS и использовать его (как это будет работать?)?Или есть другой (лучший) способ сделать это, так как Electron имеет встроенные функции для доступа к API REST, такие как

. Я потратил немало времени на поиск решения и не нашел его.Теперь мне интересно, не является ли это таким необычным сценарием использования Electron в качестве фреймворка для доступа к API-интерфейсам REST и автоматической генерации кода с использованием swagger codegen.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Я на самом деле закончил swagger-codegen, как предложил GrahamMc.

Общий подход был таким:

rm -rf api
wget http://localhost/site/json-schema -O api.json
docker run --user `id -u`:`id -g` --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -i /local/api.json -l javascript -o /local/api
rm api.json
cd api
npm install

Шаг 1 - очистка старого сгенерированного кода, а шаг 2 - загрузкаswagger spec, который недоступен из docker-контейнера.Остальное - очистка и установка зависимостей.

В коде его можно использовать следующим образом:

var jtm_api = require('.api/')
var userApi = new jtm_api.UserApi()

var cb = function(error, data, response) {
    if (response.status == 200) {
        //do whatever
    } else {
        //do whatever
    }
}
userApi.usersLoginPost(txtUser, txtPwd, cb)

Существует обширная документация по использованию сгенерированного кода.начиная с файла README.md в сгенерированной папке.

0 голосов
/ 10 декабря 2018

Самое замечательное то, что приложения Electron могут быть очень похожи на обычные веб-приложения.Возможно, именно поэтому вы не нашли конкретных инструкций по использованию Electron с инструментами, к которым вы привыкли.

Вы должны иметь возможность использовать любые инструменты, которые вы обычно используете для создания заглушек для вызова REST.из любого веб-приложения, и заглушки должны нормально работать при обращении в Electron (если они генерируются в Javascript или Typescript).

Пробовали ли вы использовать кодекс Swagger, пробовали ли вы использовать API-интерфейс полученного клиентского кода,и это дало вам ошибку?Попробуйте опубликовать любые конкретные ошибки как новые вопросы в Stack Overflow для решений (или отредактируйте этот вопрос, чтобы быть более конкретным).

Электрон почти как пустой холст - не существует «правильного» или «неправильного» способаразрабатывать, хотя, безусловно, существуют «хорошие практики» и «плохие практики».

Определенно существуют концепции, которые уникальны для разработки приложений в Electron, и для этого было бы неплохо соединить ваш опыт разработки с некоторыми общими Electron.чтение и обучение.

Вы очень скоро столкнетесь с «уникальными» понятиями Electron, такими как «main» и «renderer», и вам будет намного легче, если у вас есть учебный материал, которым вы будете руководствоваться.Существует много материалов для изучения Electron, поэтому я не буду пытаться составить список здесь.

Также обратите внимание, что переполнение стека более полезно, когда предоставляются конкретные ошибки или минимальные примеры, и вы, вероятно, получите лучшие ответытаким образом :-) Смотрите: https://stackoverflow.com/help/mcve для получения дополнительной информации об этом.

...