yii2-openapi

REST API application generator for Yii2, openapi 3.0 YAML -> Yii2

Github stars Tracking Chart

yii2-openapi

REST API application generator for Yii2, openapi 3.0 YAML -> Yii2.

Base on Gii, the Yii Framework Code Generator.

Latest Stable Version
Total Downloads
License
Build Status

what should this do?

Input: OpenAPI 3.0 YAML or JSON (via cebe/php-openapi)

Output: Controllers, Models, database schema

Features

This library is currently work in progress, current features are checked here when ready:

  • generate Controllers + Actions

  • generate Models

  • generate Database migration

  • provide Dummy API via Faker

  • update Database and models when API schema changes

Requirements

  • PHP 7.1 or higher

Install

composer require cebe/yii2-openapi:@beta cebe/php-openapi:@beta

Usage

You can use this package in your existing application or start a new project using the
yii2-app-api application template.
For usage of the template, see instructions in the template repo readme.

In your existing Yii application config (works for console as well as web):

<?php
$config = [
    // ... this is your application config ...
];

if (YII_ENV_DEV) {
    // enable Gii module
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => yii\gii\Module::class,
        'generators' => [
            // add ApiGenerator to Gii module
            'api' => \cebe\yii2openapi\generator\ApiGenerator::class,
        ],
    ];
}

return $config;

To use the web generator, open index.php?r=gii and select the REST API Generator.

On console you can run the generator with ./yii gii/api --openApiPath=@app/openapi.yaml. Where @app/openapi.yaml should be the absolute path to your OpenAPI spec file. This can be JSON as well as YAML (see also cebe/php-openapi for supported formats).

Run ./yii gii/api --help for all options.

OpenAPI extensions

This library understands the following extensions to the OpenAPI spec:

x-faker

You may specify custom PHP code for generating fake data for a property:

    Post:
      properties:
        id:
          type: integer
        tags:
          type: array
          items:
            type: string
          example: ['one', 'two']
          x-faker: "$faker->randomElements(['one', 'two', 'three', 'four'])"

Screenshots

Gii Generator Form:

Gii Generator Form

Generated files:

Gii Generated Files

Support

Need help with your API project?

Professional support, consulting as well as software development services are available:

https://www.cebe.cc/en/contact

Development of this library is sponsored by cebe.:cloud: "Your Professional Deployment Platform".

Main metrics

Overview
Name With Ownercebe/yii2-openapi
Primary LanguagePHP
Program languagePHP (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2018-10-23 10:39:18
Pushed At2024-06-04 15:27:09
Last Commit At2024-06-04 17:27:09
Release Count7
Last Release Name2.0-beta2 (Posted on )
First Release Name0.9.0-beta (Posted on )
用户参与
Stargazers Count128
Watchers Count9
Fork Count22
Commits Count760
Has Issues Enabled
Issues Count99
Issue Open Count24
Pull Requests Count74
Pull Requests Open Count0
Pull Requests Close Count7
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private