2017 © Pedro Peláez
 

yii2-extension yii2-swagger

Swagger Documentation Generator for Yii2 Framework

image

yii2mod/yii2-swagger

Swagger Documentation Generator for Yii2 Framework

  • Thursday, October 19, 2017
  • by disem
  • Repository
  • 3 Watchers
  • 8 Stars
  • 2,621 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 6 Forks
  • 2 Open issues
  • 4 Versions
  • 71 % Grown

The README.md

, (*1)

Swagger Documentation Generator for Yii2 Framework


Swagger/OpenAPI Documentation Generator for Yii2 Framework., (*2)

Latest Stable Version Total Downloads License Build Status, (*3)

Installation

The preferred way to install this extension is through composer., (*4)

Either run, (*5)

php composer.phar require --prefer-dist yii2mod/yii2-swagger "*"

or add, (*6)

"yii2mod/yii2-swagger": "*"

to the require section of your composer.json., (*7)

Configuration

You need to configure two actions as follows:, (*8)

<?php

namespace app\controllers;

use Yii;
use yii\helpers\Url;
use yii\web\Controller;

/**
 * @SWG\Swagger(
 *     basePath="/",
 *     produces={"application/json"},
 *     consumes={"application/x-www-form-urlencoded"},
 *     @SWG\Info(version="1.0", title="Simple API"),
 * )
 */
class SiteController extends Controller
{
    /**
     * @inheritdoc
     */
    public function actions(): array
    {
        return [
            'docs' => [
                'class' => 'yii2mod\swagger\SwaggerUIRenderer',
                'restUrl' => Url::to(['site/json-schema']),
            ],
            'json-schema' => [
                'class' => 'yii2mod\swagger\OpenAPIRenderer',
                // Тhe list of directories that contains the swagger annotations.
                'scanDir' => [
                    Yii::getAlias('@app/controllers'),
                    Yii::getAlias('@app/models'),
                ],
            ],
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
        ];
    }
}

Usage

1) Creating a Controller, (*9)

First, create a controller class app\controllers\UserController as follows:, (*10)

namespace app\controllers;

use app\models\User;
use yii\data\ActiveDataProvider;
use yii\rest\Controller;

/**
 * Class UserController
 */
class UserController extends Controller
{
    /**
     * @SWG\Get(path="/user",
     *     tags={"User"},
     *     summary="Retrieves the collection of User resources.",
     *     @SWG\Response(
     *         response = 200,
     *         description = "User collection response",
     *         @SWG\Schema(ref = "#/definitions/User")
     *     ),
     * )
     */
    public function actionIndex()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => User::find(),
        ]);

        return $dataProvider;
    }
}

2) Creating User definition, (*11)

You need to create folder app/models/definitions and add User definition class as follows:, (*12)

<?php

namespace app\models\definitions;

/**
 * @SWG\Definition(required={"username", "email"})
 *
 * @SWG\Property(property="id", type="integer")
 * @SWG\Property(property="email", type="string")
 * @SWG\Property(property="username", type="string")
 */
class User
{
}

3) Configuring URL Rules, (*13)

Then, modify the configuration of the urlManager component in your application configuration:, (*14)

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        'GET,HEAD users' => 'user/index',
    ],
]

4) Enabling JSON Input, (*15)

To let the API accept input data in JSON format, configure the parsers property of the request application component to use the yii\web\JsonParser for JSON input:, (*16)

'request' => [
    'parsers' => [
        'application/json' => 'yii\web\JsonParser',
    ]
]

Trying it Out

Now you can access to swagger documentation section through the following URL:, (*17)

http://localhost/path/to/index.php?r=site/docs, (*18)

View in the browser, (*19)

Alt text, (*20)

Support us

Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff., (*21)

The Versions

19/10 2017

dev-master

9999999-dev

Swagger Documentation Generator for Yii2 Framework

  Sources   Download

MIT

The Requires

 

The Development Requires

by Igor Chepurnoi

yii2 yii2 swagger yii2 api documentation generator

19/10 2017

1.1.1

1.1.1.0

Swagger Documentation Generator for Yii2 Framework

  Sources   Download

MIT

The Requires

 

The Development Requires

by Igor Chepurnoi

yii2 yii2 swagger yii2 api documentation generator

16/10 2017

1.1

1.1.0.0

Swagger Documentation Generator for Yii2 Framework

  Sources   Download

MIT

The Requires

 

The Development Requires

by Igor Chepurnoi

yii2 yii2 swagger yii2 api documentation generator

14/10 2017

1.0

1.0.0.0

Swagger Documentation Generator for Yii2 Framework

  Sources   Download

MIT

The Requires

 

The Development Requires

by Igor Chepurnoi

yii2 yii2 swagger yii2 api documentation generator