swagger typescript / angular2 client

时间:2016-12-05 13:40:54

标签: angular typescript

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

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

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

您可以查看UsersApi.ts

1 个答案:

答案 0 :(得分:0)

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

首先,我将生成的输出放入我的项目中。您可以自动执行此操作。取决于您的api预计会改变多少。我把它放到'app / core / api'中,这包括api文件夹和模型文件夹以及其他六个左右的文件。和.swagger-codegen文件夹(虽然我不是100%确定这是必需的)。

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