0

Swagger Yamlを使用してエンドポイントを記述し、モックサーバーを生成しました。既存のエンドポイント(私が嘲笑している)は、RESTfulな原則100%に従わないので、単にモックサーバーによって返された応答を上書きしたいだけです。単純なサーバーコードを以下に示します。YAMLの定義ではjavascriptからswagger yamlで定義されたオブジェクトにアクセスする方法

var swagger   = require('swagger-server'); 
var server   = swagger('map-cache.yaml'); 

var port   = 7072; 

server.post('/map-qa_trunk/v2/getData', function(req, res, next) { 
    var foo = { 
     err : 123, 
     msg : "error message" 
    }; 
    res.json(foo); 
}); 

server.listen(port, function() { 
    console.log('Map Cache Mock Server is now running at http://localhost:' + port); 
}); 

、私は必要に応じてそれを移植し、解像度に戻ることができるように、私は、このオブジェクトのインスタンスを作成するにはどうすればよいMapResponseDataと呼ばれる定義されたオブジェクトがあり、 .json()?以下のようなもの:

var response = getMapResponseData(); // don't know what this call should be 
response.fieldA = 123; 
res.json(response); 

私が闊歩はYAMLファイルを解析され、指定されたすべての定義を知っているので、これが可能でなければなりません推測しています。

答えて

1

リクエストオブジェクトをconsole.logに出力して、スワッガー定義への参照を見つけることができるかどうかを確認してください。もう一つのオプションは、yamlファイルから(例えばjs-yamlを使って)解析されたswaggerの定義を引っ張ってそこから抽出することです。

ただし、swagger-serverの代わりにswagger-toolsを使用することをおすすめします。 swagger-serverパッケージはアルファ版であり、swagger-toolsよりダウンロード、リビジョン、およびユーザー数が少ない。スワッガーツールの利点は、それが積極的に維持され、あなたをサポートできる大きなコミュニティがあることです。プロジェクトをスワッガーツールに変換するには、Swagger.io>スワッガーエディター>オンラインエディター>左ペインにyamlを貼り付け>サーバーの生成> Node.jsを使用します。

スワッガーツールでは、Swagger Yaml定義全体が各要求オブジェクト:

req.swagger.swaggerObject 

そして、必要に応じて応答オブジェクトの定義を取得できます。

関連する問題