Swagger TypeScript/Angular2客户端

6
我已经使用typescript2/angular2语言生成了客户端,使用swagger codegen代码生成器。
我无法弄清楚已经生成了什么以及如何使用这些构件。
据我所知,在create方法中请求头部未包括(userpasswd参数)。否则,我不明白请求是如何发起的。我在map方法回调内设置了断点,但从未触发。
您可以查看UsersApi.ts

3
截至2017年2月,据我所知,没有人对如何使用生成的Angular 2客户端进行任何文档工作。Swagger-codegen文档表示,您应该参考下载的客户端附带的README文件。但实际上没有README文件,因此我猜想这只是因为没有人愿意编写文档(非常讽刺,考虑到这个主题——帮助自动化文档的软件本身没有文档)。 - pspahn
{btsdaf} - PeterS
1个回答

0

我在当前项目中使用Swagger Codegen生成的客户端(TypeScript/ng2)。

首先,我将生成的输出放入我的项目中。您可以自动化此过程,也可以手动完成。这取决于您的API预计会发生多少变化。我将它放在“app/core/api”中,其中包括API文件夹、模型文件夹和大约半打其他文件,还有一个.swagger-codegen文件夹(虽然我不确定是否需要)。

  1. 创建一个服务来包装您对生成的 API 的使用,从而使您的组件与其解耦(以防它发生更改)。因此,对于您的示例,我将创建自己的 user.service.ts 来供我的组件使用。
  2. 在您的 UserService 类中,您需要从生成的代码中导入公共 API。这通常在 api/index.ts 中或者只是: import * as client from 'app/core/api'; 当您只有一个 API 时,这更简单。如果您有多个 API,则它们作为名为 APIS 的数组从 api/api.ts 导出。
  3. 要使用 API,您不需要创建标头、参数或任何其他内容。生成的服务具有应该接受调用所需值的方法,并处理制作 JSON 请求和响应对象。浏览模型文件夹和服务 ts 本身应该会使这一点更清晰。但是对于您的示例,您只有两种方法。创建和存在。在您的 UserService 中,您创建一个名为 CreateUser 或其他您喜欢的方法,在其中调用 api 方法 create。传递用户名字符串和密码字符串。就是这样。它将返回任何 API 调用返回的 observable(它将 JSON 响应转换为在 api 生成的代码中定义的 TypeScript 对象(在 models 目录中)。
  4. 对于您的示例,似乎没有使用自定义对象。create 方法只返回 Observable<{}>。因此,您可以调用它并将响应映射到自己的 User 类实例,并使用它来绑定到您的视图模板。再次保持与 API 细节分离。
希望这可以帮到你。我很乐意回答更具体的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接