2017 © Pedro Peláez
 

yii2-extension yii2-rest-doc-slade-version

A Yii2 tool to create slate index.md for you REST controllers.

image

thiagoarioli/yii2-rest-doc-slade-version

A Yii2 tool to create slate index.md for you REST controllers.

  • Tuesday, July 12, 2016
  • by thiagoarioli
  • Repository
  • 1 Watchers
  • 0 Stars
  • 70 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

yii2-rest-doc-slade-version

This is a version off yii2-rest-doc created by @pahanini, (*1)

Yii2 Rest Controller Documentator

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

About

Create precise documentation to your Yii2 API REST controllers. Library parses your code and generates objects with meta data that could be used with any template engine to generate great API docs., (*3)

You do not need to edit documentation when you change you code. Just rebuild you docs with this tool., (*4)

Install

  • Add "pahanini/yii2-rest-doc": "*" to required section of your composer.json
  • Add to your console application config

``` php, (*5)

'controllerMap' => [ 'build-rest-doc' => [ 'sourceDirs' => [ '@frontend\controllers\rest', // '//restdoc/restdoc.twig', 'class' => '\pahanini\restdoc\controllers\BuildController', 'sortProperty' => 'shortDescription', // 'path/to/nice-documentation.html' ], ], (*6)


## Data available in template List of data automatically extracted from code: - controller name - action's of each controller - model fields - extra fields - model rules (TBD) List of special tags: - short and long description of controller - query tags Inheritance is also supported. Use `@inherited` or `@inheritdoc` tags. ### Controller - `@restdoc-ignore` - skip controller. - `@restdoc-label name` - mark controller with label. Label name available via `controller.hasLabel('labelName')` in template - `@restdoc-query name=false Name of part of name to find users` - query params with description. ### Model To describe model's fields you can use two approaches. #### Link to property tag. If you already have phpDocumentator `@property` tag you can use it to describe API field. Model's doc block example: ```php /** * My model. * * @property string $title Model's title */
  • @restdoc-link $title - use $title property to describe $title api field
  • @restdoc-link title $model_title - use $title property to describe $model_title api field

Separate field description

If you do not have @property tag or API field is not directly connected with property use @restdoc-field tag., (*7)

Example:, (*8)


/** * @restdoc-field int $id ID * @restdoc-field string $title Model's title */

Extra fields

Use @restdoc-extraField and @restdoc-extraLink for extra fields., (*9)

Sort fields

Use @restdoc-sortField to sort field according to your code., (*10)

Integrate With Slate

Slate is probably one of the best tools to generate nice API. So you can use this tool to create index.md file for slate. You can use on afterAction event to automatically start slate., (*11)

Example:, (*12)

php 'controllerMap' => [ 'build-rest-doc' => [ 'sourceDirs' => [ '@api/modules/v1/controllers', // <-- path to your API controllers ], 'template' => '//restdoc/slate.php', 'class' => '\thiagoarioli\restdoc\controllers\BuildController', 'targetFile' => '@console/slate/source/index.html.md', 'on afterAction' => function() { exec("bundle exec middleman build"); } ], ], (*13)

Rationale

Creating of Yii2 controllers is an easy task, but supporting of documentation in actual state is often boring and tough challenge. Using automatic tool like phpDocumentator or swagger makes life easier but its still require to describe all models fields and rules using tags or comments., (*14)

In other hand Yii2 controllers and models keep a lot of information about internal structure like actions,
field names, scenarios for update and insert operations. This package extracts such an information from REST controllers and models and using this data along with phpdocumentator tags automatically generates index.md for slate or any other documentation file., (*15)

The Versions

12/07 2016

dev-master

9999999-dev https://github.com/thiagoarioli/yii2-rest-doc-slade-version

A Yii2 tool to create slate index.md for you REST controllers.

  Sources   Download

BSD-3-Clause

The Requires

 

by Thiago Oliveira

api rest yii2 doc slate

12/07 2016

1.1

1.1.0.0 https://github.com/thiagoarioli/yii2-rest-doc-slade-version

A Yii2 tool to create slate index.md for you REST controllers.

  Sources   Download

BSD-3-Clause

The Requires

 

by Thiago Oliveira

api rest yii2 doc slate

04/07 2016

1.0

1.0.0.0 https://github.com/thiagoarioli/yii2-rest-doc-slade-version

A Yii2 tool to create slate index.md for you REST controllers.

  Sources   Download

BSD-3-Clause

The Requires

 

by Thiago Oliveira

api rest yii2 doc slate