1. Go to this page and download the library: Download samueldavis/swagger-builder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// (optional) contact from the example
$contact = (new Contact())
->setName('Swagger API team')
->setEmail('[email protected]')
->setUrl('http://swagger.io');
// (optional) license from the example
$license = (new License('MIT'))
->setUrl('http://opensource.org/licenses/MIT');
// The Info object is what we really need
$info = (new Info('Swagger Petstore (Simple)', '1.0.0'))
->setDescription('A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification')
->setTermsOfService('http://helloreverb.com/terms/')
->setContact($contact)
->setLicense($license);
$paths = [
new Path('/pets', $operations),
];
$addPet = (new Operation(Verb::POST, $responses))
->setDescription('Creates a new pet in the store. Duplicates are allowed')
->setOperationId('addPet')
->setProducedMimes()
->addParameter($addPetBody);
$operations = [
$addPet,
];
$petResponseModel = (new Schema())
->setProperty('id', (new Schema(Type::INTEGER))->setFormat(Format::LONG), true)
->setProperty('name', new Schema(Type::STRING), true)
->setProperty('tag', new Schema(Type::STRING));
$errorResponseModel = (new Schema())
->setProperty('code', (new Schema(Type::INTEGER))->setFormat(Format::INTEGER), true)
->setProperty('message', new Schema(Type::STRING), true);
$newPet = (new Schema())
->setProperty('id', (new Schema(Type::INTEGER))->setFormat(Format::LONG))
->setProperty('name', new Schema(Type::STRING), true)
->setProperty('tag', new Schema(Type::STRING));
$addPetBody = (new BodyParameter('pet', true, $newPet))
->setDescription('Pet to add to the store');
$responses = [
(new Response(200, 'pet response'))->setSchema($petResponseModel),
(new Response('default', 'unexpected error'))->setSchema($errorResponseModel),
];