4

JSONファイルを生成するためにSwagger-PHPを使用しようとしているので、自動ドキュメント用のSwagger-UIで使用できます。

リンクを試してみました:- https://github.com/zircote/swagger-php

また、 http://zircote.com/swagger-php/installation.htmlにあるドキュメントを回避しようとしました。

しかし、私の運が悪かったので、実装できません。

composer を正しくインストールできます。また、Swagger-PHP のバンドルも正しくインストールされています。

しかし、問題は、提供されたテスト例を使用/理解できないことです。

誰かがそれを回避した場合は、助けてください!!

前もって感謝します !!

4

2 に答える 2

11

コードにコメントまたは注釈を入れるだけです。モデルの例:

/**
* @SWG\Model(
* id="vps",
* required="['type', 'hostname']",
*  @SWG\Property(name="hostname", type="string"),
*  @SWG\Property(name="label", type="string"),
*  @SWG\Property(name="type", type="string", enum="['vps', 'dedicated']")
* )
*/
class HostVps extends Host implements ResourceInterface
{
    // ...
}

コントローラーの例:

/**
 * @SWG\Resource(
 *  basePath="http://skyapi.dev",
 *  resourcePath="/vps",
 *  @SWG\Api(
 *   path="/vps",
 *   @SWG\Operation(
 *    method="GET",
 *    type="array",
 *    summary="Fetch vps lists",
 *    nickname="vps/index",
 *    @SWG\Parameter(
 *     name="expand",
 *     description="Models to expand",
 *     paramType="query",
 *     type="string",
 *     defaultValue="vps,os_template"
 *    )
 *   )
 *  )
 * )
 */
 class VpsController extends Controller
 {
     // ...
 }

次にコンソールで:

php swagger.phar ./your-code-source/ -o ./directory-for-output-files

次に、Swagger UI で生成されたファイルをリンクします。これはヘルプですか?

ところで、このドキュメント: http://zircote.com/swagger-php/annotations.htmlは不完全です。パーサー エラーに依存する方が良いです。例:

php swagger.phar ./skynode-api/api/ -o ./foo
Swagger-PHP 0.9.0
-----------------
[INFO] Skipping unsupported property: "foo" for @Swagger\Annotations\Property, expecting "name", "description", "type", "format", "items", "uniqueItems", "required", "minimum", "maximum", "enum", "defaultValue", "_partialId", "_partials" in HostVps in /home/kane/some-dir/some-file.php on line 3

編集: Swagger 2.0 はGitHub でかなり良い仕様を持っています

ところで、Swagger Editorを使用して、Swagger UI で使用する API 仕様ファイル (json/yaml) を作成することを検討してください。PHP ファイルのインライン SWG ドキュメントは見苦しく、IDE でオートコンプリートがサポートされていません。

于 2014-01-27T12:04:55.110 に答える
0

私は最近これに苦労しており、いくつかの違いを見て、なんとかそれを機能させ、おそらく他の誰かをショートカットしたいと思っていました:

// In the controller

/**
 * (other swagger stuff like @SWG\Put, etc...)
 *   @SWG\Parameter(name="type",in="path",description="project|task",
 *                  required=true, type="array",             
 *                  @SWG\Items(type="string"), 
 *                  default="project",
 *                  enum={"project", "task"}),
 * (next @SWG\Parameter or closing paran, etc)
 */

私は以前、モデル内の列挙型と @SWG\Items への参照を使用してこれを機能させていましたが、そのコードを保存していませんでした (いじり回しただけでした)、元に戻すことはできません。以前に質問に賛成票を投じて回答を受け入れたことさえあります。しかし、上記は私が今それを機能させることができる唯一の方法であり、何もないよりはましです.

于 2016-09-01T01:11:06.440 に答える