2017-09-12 6 views
1

私はドキュメント用にSwaggerを使用しています。 アノテーションからjsonファイルを生成することは効果的です。 さらに、生成されたjsonファイルにプログラムでいくつかのパスを追加したいと思います。Swagger-php - パスをプログラムで追加する方法は?

Swaggerクラスにはマージメソッドがあることがわかりましたので、json文字列を逆シリアル化し、以下のようなSwaggerオブジェクトにマージしようとしましたが、運がありませんでした。

$swagger = \Swagger\scan($appDir); 
$jsonString = json_encode([ 
     "path" => [ 
      "path" => "/api/task/{taskName}", 
      "parameter" => [ 
       "ref" => "#/parameters/taskName" 
      ] 
     ], 
    ]); 
$objectToMerge = (new Serializer())->deserialize($jsonString, 'Swagger\Annotations\Path'); 
$swagger->merge($object); 

私は正しい方法でやっているのか分かりません。誰でもSwagger mergeメソッドまたはmergePropertiesメソッドを使用していましたか?または、私の目標を達成する別の方法がありますか?

答えて

0

私は問題を把握しました。

問題は、最初のパラメータとしてdeserializeメソッドに入れたjson文字列が適切でなかったためです。

jsonストリングの形成は、OpenAPI仕様ではありません。私はこの形成がSwagger-phpで内部的に使われていると思います。

ここでは動作している正しいjsonの形成があります。

[ 
    "path" => "/api/task/{taskName}", 
    "post" => [ 
     "path" => "/api/task/{taskName}", 
     "tags" => ['test'], 
     "summary" => "summary test", 
     "description" => "description test", 
     "produces" => ['application/json'] 
    ] 
] 

困っている人を助けてください。

関連する問題