swagger typescript/angular2 client

Jor*_*rdi 6 typescript angular

我使用swagger codegen 代码生成器使用typescript2/angular2语言生成了我的客户端.

我无法弄清楚生成了什么以及如何使用这些工件.

到目前为止,我已经弄清楚了,create方法(userpasswd参数)中的请求中不包含标头.否则,我不明白如何提出请求.我在map方法回调中设置了一个断点,它永远不会到达.

您可以查看UsersApi.ts.

小智 0

我在当前的项目中使用了 swagger codegen 生成的客户端(typescript/ng2)。

首先,我获取生成的输出并将其放入我的项目中。您可以自动执行此操作,也可以不执行此操作。取决于您的 api 预计会改变多少。我将其放入“app/core/api”中,其中包括 api 文件夹和模型文件夹以及六个左右的其他文件。还有一个 .swagger-codegen 文件夹(尽管我不是 100% 确定需要这个)。

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

希望这可以帮助。我很乐意回答更具体的问题。