我正在开发一个用于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
那我该怎么办?