如何访问网页中由swagger生成的Javascript客户端SDK?

时间:2017-11-03 14:48:51

标签: javascript browser swagger swagger-2.0

我正在开发一个用于Web服务的REST API。我们选择使用SwaggerHub创建API的正式规范。现在我进入下一步,使用生成的Javascript客户端SDK与网页中的Web服务进行通信...

SwaggerHub提供的文档专注于在node.js中使用生成的客户端SDK,这似乎与浏览器略有不同。

我使用“browserify”在一个包中收集了完整的SDK:

browserify index.js > bundle.js

然后我在HTML中添加了对bundle的引用:

<html>
  <head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="bundle.js"></script>

这似乎有效,虽然我不确定在这个阶段我究竟能如何测试它。

然后,一旦文档准备就绪,我尝试与bundle中声明的API进行交互(这是 - 除了封装和alert()调用 - 取自生成的客户端SDK中提供的文档):

    <script type="text/javascript">
      $(document).ready(function() {
        alert('Document ready');
        var WebApiForStandard = require('web_api_for_standard');
        alert('API ready');
        var defaultClient = WebApiForStandard.ApiClient.instance;
        [...]

我收到“文档就绪”消息,但我没有收到“API ready”消息。当我检查浏览器控制台(在Firefox中)时,它显示:

ReferenceError: require is not defined

我认为这是因为require()来自node.js。

...但我已经要求浏览器加载API包,所以这可能不是问题。接下来尝试省略require()调用:

    <script type="text/javascript">
      $(document).ready(function() {
        alert('Document ready');
        var defaultClient = WebApiForStandard.ApiClient.instance;
        alert('Client ready');
        [...]

但不是。现在浏览器控制台报告:

ReferenceError: WebApiForStandard not defined

那我该怎么办?

0 个答案:

没有答案