2016-09-27 9 views
8

Googleには、APIの有効なSwagger定義を持つ完全にドッキングされたWebアプリケーションがあります。 APIは独自のドッカーコンテナで実行され、ドッカーの作成機能を使用してすべてを編成しています。 http://api:8443/apidocs.jsonにあるSwagger定義に基づいてRubyクライアントを生成したいと考えています。パブリックスワッガージェネレータドッカー画像を使用してクライアントを生成するにはどうすればよいですか?

私はhereという文書を書きました。クライアントとサーバーのコードを生成するためにSwagger's public docker imageになりました。悲しいことに、ドキュメンテーションは不足していて、実際にドッカーイメージでクライアントを生成する例はありません。

Dockerfileは、そのコンテナがWebサービスを実行していることを示しています。私はhttp://generator.swagger.ioのドッキングされたバージョンしか想定していません。そのように、私は次のコマンドを使用してクライアントを生成することができると期待する:ここ

curl -X POST -H "content-type:application/json" -d \ '{"swaggerUrl":"http://api:8443/apidocs"}' \ http://swagger-generator:8080/api/gen/clients/ruby

ありません運を。私は曖昧な定義が(npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocsで有効であることを確認したにもかかわらず、 "無効なスワッガー定義"を取得し続けます。

アイデア?

答えて

4

は確かにあなたが正しい、あなたが参照しているドッキングウィンドウの画像はhttp://generator.swagger.io

あなたが抱えている問題で使用したのと同じ画像入力パラメータが正しくないです。

これを正しく行うには、swagger-generatorにWebインターフェイスがあることに注意してください。だから、一度起動すると、指示が言うように、ブラウザで開きます。例えば、(あなたのマシンのIPアドレスでGENERATOR_HOSTを置き換える):あなたはhttp://192.168.99.100

に威張っ-UIを開くことができ

docker run -d -e GENERATOR_HOST=http://192.168.99.100 -p 80:8080 swaggerapi/swagger-generator 

ここで重要な部分は、あなたが呼び出し構文を確認するためにUIを使用することができるということです。クライアントを生成している場合は、http://192.168.99.100/#!/clients/generateClientに移動して、生成する言語を選択し、右側のペイロードをクリックします。 swaggerUrlフィールドをサーバーのアドレスに置き換えてください。

curlの出力を使用して、コマンドラインからの呼び出し方法を調べることができます。それはそこから容易でなければなりません。

第三者のツールによれば、スワッガー定義が有効であると言っても、それは実際には意味しません。しかし、それはあなたの問題だとは思いませんが、サードパーティのツールの走行距離は異なる場合があります。

+1

ありがとうございました。スガッガー・ジェネレーター・コンテナのログを掘り下げた後、「接続が拒否されました()」というエラーが発生していました。それでも、カール要求の出力に応じたエラーは「無効なスワッガー定義」でした。それほど役に立たない出力、それ。 :(私はswaggerUrlオプションを 'http:// api/apidocs.json'に修正した後に動作します – mycargus

関連する問題