2016-12-05 44 views
6

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

我无法弄清楚已经生成了什么以及如何使用工件。

到目前为止,我已经能够弄清楚,create方法(userpasswd参数)的请求中不包含标头。否则,我不明白如何提出请求。我在map方法回调中设置了一个断点,它从未达到过。你可以看看UsersApi.ts

+3

由于2017年2月的,是最好的,我可以告诉大家,没有人在做任何工作记录如何使用发电机密封编辑Angular 2客户端。 Swagger-codegen文档说你应该参考下载客户端附带的README文件。没有README文件,所以我猜这是一个没有人想写文档的简单例子(考虑到主题 - 有趣的讽刺意味 - 帮助文档自动化的软件本身没有文档)。 – pspahn

+0

如果你使用的是swagger 2.2.2,那么这个bug被更新了,而更新的2.2.3版本会显着改变生成的代码。在继续之前我会尝试一下,尽管你现在可能已经有了。 – PeterS

回答

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 *作为'app/core/api'的客户端; 当你只有一个API时,这更简单。如果你有多个,它们被作为一个名为APIS的数组从api/api.ts/
  3. 导出。要使用api,你不需要创建头文件或params或其中任何一个。生成的服务具有的方法应该接受调用需要的值,并处理创建json请求和响应对象。通过模型文件夹和服务ts本身应该使这一点更清晰。但对于你的例子,你只有两种方法。创造和存在。在你的UserService中你创建了一个名为CreateUser的方法,或者你喜欢的任何方法,并且你可以调用API方法create。将它传递给用户名字符串和密码字符串。这就对了。它会返回api调用返回值的一个可观察值(它将json响应转换为一个打字稿对象(在api生成的代码中的模型目录中定义)
  4. 对于您的示例,它似乎没有使用自定义对象。create方法刚刚返回Observable < {}>。因此,您可以调用它并将响应映射到您自己的User类实例,并使用它绑定到您的视图模板。再次与api细节保持解耦。

希望这有助于。我会很乐意回答更具体的问题。