2016-12-05 20 views
6

コード生成ツールswagger codegenを使用してtypescript2/angular2言語を使用してクライアントを生成しました。swagger typescript/angular2クライアント

何が生成されたのか、アーティファクトの使用方法を把握することはできません。

これまでのところ、ヘッダーはcreateメソッド(userpasswdパラメータ)のリクエストに含まれていません。そうでなければ、私はどのようにリクエストが行われたのか理解していません。 mapメソッドコールバック内にブレークポイントを設定しましたが、決して到達しません。

UsersApi.tsをご覧ください。

+3

2017年2月の時点では、として最高の私が言うことができるように、誰もがgeneratの使用方法を文書化する作業を行っていませんEd Angular 2クライアント。 Swagger-codegenのドキュメントによると、ダウンロードしたクライアントに付属のREADMEを参照する必要があります。 READMEファイルはありませんので、ドキュメントを書くことを望んでいないという単純なケースだと思います(トピックを考えれば皮肉なことですが、ドキュメントの自動化に役立つソフトウェアはドキュメント自体がありません)。 – pspahn

+0

swagger 2.2.2を使用していた場合、これは盗聴されました。新しい2.2.3のバージョンでは、生成されるコードが大幅に変更されます。私はそれを続ける前に試してみるだろうが、おそらくあなたは今持っているだろう。 – PeterS

答えて

0

現在のプロジェクトで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のみを使用すると簡単です。複数のものがある場合は、api/api.ts/
  3. からAPISという配列としてエクスポートされます。
  4. APIを使用するには、ヘッダーまたはパラメータまたはそのいずれかを作成する必要はありません。生成されたサービスには、呼び出しに必要な値を取り、jsonの要求と応答オブジェクトの作成を処理するメソッドがあります。 modelsフォルダとサービスtsを見てみると、これは少し明確になります。あなたの例では2つの方法しかありません。作成し、存在します。あなたのUserServiceで、CreateUserというメソッドを作成するか、好きなものを作成して、その中にapiメソッドcreateを呼び出します。ユーザー名文字列とパスワード文字列を渡します。それだ。 API呼び出しが返すものを観測可能なものに戻します(これは、JSON応答をtypescriptオブジェクト(APIディレクトリで定義されたAPIの生成ディレクトリに定義されています)に変換します。
  5. 例として、カスタムオブジェクト。作成メソッドはObservable < {}>を返します。それを呼び出すと、独自のUserクラスインスタンスにレスポンスをマップし、ビューテンプレートにバインドするのに使用できます。

ホープ、これは私はより具体的な質問に答えて幸せである。役立ちます。

関連する問題