Electron开发-基于招摇过市定义生成API客户端

Electron开发-基于招摇过市定义生成API客户端,electron,swagger,Electron,Swagger,我对electron很陌生,试图用它来构建一个跨平台的应用程序,应该能够在机器上运行。在服务器端,我已经有了一个应用程序,它公开了一个RESTAPI,并用swagger进行了记录 现在我正试图为这个招摇过市的定义生成一个客户端存根,然后我可以将其与electron一起使用。这是如何实现的?我是否应该生成JS代码并使用它(这将如何工作?)?或者,由于Electron具有访问RESTAPI的内置函数,是否还有其他(更好的)方法 我花了大量时间寻找解决方案,但没有找到。现在我想知道,使用Electro

我对electron很陌生,试图用它来构建一个跨平台的应用程序,应该能够在机器上运行。在服务器端,我已经有了一个应用程序,它公开了一个RESTAPI,并用swagger进行了记录

现在我正试图为这个招摇过市的定义生成一个客户端存根,然后我可以将其与electron一起使用。这是如何实现的?我是否应该生成JS代码并使用它(这将如何工作?)?或者,由于Electron具有访问RESTAPI的内置函数,是否还有其他(更好的)方法


我花了大量时间寻找解决方案,但没有找到。现在我想知道,使用Electron作为框架访问REST API,并使用swagger codegen自动生成代码,这是否是一种罕见的情况。

最棒的是,Electron应用程序的开发与普通web应用程序非常相似。这可能就是为什么你们并没有找到使用电子和你们习惯使用的工具的具体说明

您应该能够继续使用您通常使用的工具来生成存根,以便从任何web应用程序调用REST,并且这些存根在Electron中引用时应该可以正常工作(只要它们在Javascript或Typescript中生成)

您是否尝试过使用Swagger codegen,是否尝试过使用生成的客户机代码API,以及它是否给您带来了错误?尝试将任何特定错误作为新问题发布到堆栈溢出上以获得解决方案(或编辑此问题以使其更具体)

电子几乎就像一张空白画布——没有“正确”或“错误”的发展方式,尽管肯定有“好的做法”和“坏的做法”

在Electron中开发应用程序肯定有一些独特的概念,因此最好将您的开发经验与一些一般的电子阅读和学习结合起来

你很快就会接触到“独特”的电子概念,如“主”和“渲染器”,如果你有学习材料来指导你,这将变得容易得多。有很多学习电子的材料,所以我不想在这里列出


另外请注意,当提供了特定错误或最少的示例时,堆栈溢出更有用,这样您可能会得到更好的答案:-)请参阅:了解更多信息。

我实际上按照GrahamMc的建议大摇大摆地使用了codegen

一般做法如下:

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
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)
步骤1是清理旧生成的代码,步骤2是下载docker容器中不可用的swagger规范。其余的工作是清理和安装依赖项

在代码中,它可以这样使用:

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
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
文件开始,有大量关于如何使用生成代码的文档。

Hi GrahamMc,感谢您的回答。我意识到这不是我最聪明的时刻,当我在一个不太具体的地方提出上述问题时。然而,我找到了一个解决我问题的方法,稍后我会将其作为补充答案发布。然而,实际上,swagger codegen在创建JS库方面做得很好,我只是没有找到文档(查看petstore示例),即使它就在我眼前。很高兴你来对了!当再次考虑我的答案时,我想补充一点,我认为没有特定的电子工具或框架来生成REST客户机api代码,所以您使用第三方工具(如swagger codegen)是正确的。