Skip to content

avency/swagger-php

This branch is 2 commits ahead of sintbert/swagger-php:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ec4ae4c · Dec 11, 2019
Nov 16, 2018
Nov 30, 2018
Jan 17, 2019
May 6, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
May 22, 2018
Jan 16, 2015
Dec 11, 2019
Dec 11, 2019
Jun 29, 2018

Repository files navigation

Build Status Total Downloads License

Notice

Copied and modified from https://github.com/sintbert/swagger-php

swagger-php

Generate interactive OpenAPI documentation for your RESTful API using doctrine annotations.

Features

  • Compatible with the OpenAPI 3.0 specification.
  • Extracts information from code & existing phpdoc annotations.
  • Command-line interface available.
  • Documentation site with a getting started guide.
  • Exceptional error reporting (with hints, context)

Installation (with Composer)

composer require avency/swagger-php

For cli usage from anywhere install swagger-php globally and make sure to place the ~/.composer/vendor/bin directory in your PATH so the openapi executable can be located by your system.

composer global require avency/swagger-php

Usage

Add annotations to your php files.

/**
 * @OA\Info(title="My First API", version="0.1")
 */

/**
 * @OA\Get(
 *     path="/api/resource.json",
 *     @OA\Response(response="200", description="An example resource")
 * )
 */

Visit the Documentation website for the Getting started guide or look at the Examples directory for more examples.

Usage from php

Generate always-up-to-date documentation.

<?php
require("vendor/autoload.php");
$openapi = \OpenApi\scan('/path/to/project');
header('Content-Type: application/x-yaml');
echo $openapi->toYaml();

Usage from the Command Line Interface

Generate the documentation to a static json file.

./vendor/bin/openapi --help

Usage from the Deserializer

Generate the OpenApi annotation object from a json string, which makes it easier to manipulate objects programmatically.

<?php

use OpenApi\Serializer;

$serializer = new Serializer();
$openapi = $serializer->deserialize($jsonString, 'OpenApi\Annotations\OpenApi');
echo $openapi->toJson();

Usage from docker

Generate the swagger documentation to a static json file.

docker run -v "$PWD":/app -it tico/swagger-php --help

More on OpenApi & Swagger

Contributing

Feel free to submit Github Issues or pull requests.

The documentation website is build from the docs folder with vuepress.

Make sure pull requests pass PHPUnit and PHP_CodeSniffer (PSR-2) tests.

To run both unittests and linting execute:

composer test

Running only unittests:

./bin/phpunit

Running only linting:

./bin/phpcs -p --extensions=php --standard=PSR2 --error-severity=1 --warning-severity=0 ./src ./tests

About

A php swagger annotation and parsing library

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%