Yuriy Belenko 83bad102ea
[php-symfony] Set required PHP version ^7.1.3 (#6181)
* Set PHP 7.1.3 required version

I've tried to specify ^7.0 version at first, but main package which is
symfony/framework-bundle@v4.4.8 requires PHP ^7.1.3.

* Bump Symfony FrameworkBundle to ^4.4.8

Current Symfony Framework stable version is v5.0.8, but I guess it
requires significant codebase upgrade, so I've sticked with 4.4.8 which
shouldn't cause any breaking changes. Old requirement was ^3.3|^4.1
which compatible with 4.4.8.

* Bump PHPUnit version to ^7.0

PHPUnit 8.x version required PHP ^7.2, so I'm setting 7.x version to
support PHP 7.1.
There is new way to specify Kernel class, related PR:
https://github.com/symfony/symfony/pull/22668

* Bump PHP CS Fixer version to ^2.16.3

Configuration and all renamed rules fixed.
Config file renamed to .php_cs.dist as recommended in migration guide.
Migration guide from 1.x to 2.x:
https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/UPGRADE.md#config-file

* Remove PHP_CodeSniffer package

Second linter doesn't make sense. I think Symfony user would prefer
PHP CS Fixer over PHP_CodeSniffer because first one maintained by Symfony
members.

* Remove satooshi/php-coveralls package from Composer

This package is abandoned and Coveralls recommends to install it directly
in Travis-CI task script.

* Update Travic-CI config

I've changed test versions to PHP 7.1.3 and 7.2. PHPUnit generates
coverage report in report/logs/clover.xml file. Then PHP CS Fixer runs
with --dry-run option to not override anything just to show coding style
errors.

* Add basic Coveralls config

This is basic recommended config for a PHP based project.

* Add symfony/yaml package

This package was part of satooshi/php-coveralls, now it should be
defined as dev dependency.

* Do not commit composer.lock

I think committed composer.lock can cause CI errors while tests on fresh
installs are better.

* Remove confusing Ruby comment
2020-05-29 18:35:11 +08:00

6.1 KiB

OpenAPIServer

This is a sample server Petstore server. For this sample, you can use the api key special-key to test the authorization filters.

This Symfony bundle is automatically generated by the OpenAPI Generator project:

  • API version: 1.0.0
  • Build package: org.openapitools.codegen.languages.PhpSymfonyServerCodegen

Requirements

PHP 7.1.3 and later

Installation & Usage

To install the dependencies via Composer, add the following repository to composer.json of your Symfony project:

{
    "repositories": [{
        "type": "path",
        "url": "//Path to your generated openapi bundle"
    }],
}

Then run:

composer require GIT_USER_ID/GIT_REPO_ID:dev-master

to add the generated openapi bundle as a dependency.

Tests

To run the unit tests for the generated bundle, first navigate to the directory containing the code, then run the following commands:

composer install
./vendor/bin/phpunit

Getting Started

Step 1: Please follow the installation procedure first.

Step 2: Enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new OpenAPI\Server\OpenAPIServerBundle(),
        // ...
    );
}

Step 3: Register the routes:

# app/config/routing.yml
open_api_server:
    resource: "@OpenAPIServerBundle/Resources/config/routing.yml"

Step 4: Implement the API calls:

<?php
// src/Acme/MyBundle/Api/PetApiInterface.php

namespace Acme\MyBundle\Api;

use OpenAPI\Server\Api\PetApiInterface;

class PetApi implements PetApiInterface // An interface is autogenerated
{

    /**
     * Configure OAuth2 access token for authorization: petstore_auth
     */
    public function setpetstore_auth($oauthToken)
    {
        // Retrieve logged in user from $oauthToken ...
    }
    
    /**
     * Implementation of PetApiInterface#addPet
     */
    public function addPet(Pet $body)
    {
        // Implement the operation ...
    }

    // Other operation methods ...
}

Step 5: Tag your API implementation:

# src/Acme/MyBundle/Resources/services.yml
services:
    # ...
    acme.my_bundle.api.pet:
        class: Acme\MyBundle\Api\PetApi
        tags:
            - { name: "open_api_server.api", api: "pet" }
    # ...

Now you can start using the bundle!

Documentation for API Endpoints

All URIs are relative to http://petstore.swagger.io/v2

Class Method HTTP request Description
PetApiInterface addPet POST /pet Add a new pet to the store
PetApiInterface deletePet DELETE /pet/{petId} Deletes a pet
PetApiInterface findPetsByStatus GET /pet/findByStatus Finds Pets by status
PetApiInterface findPetsByTags GET /pet/findByTags Finds Pets by tags
PetApiInterface getPetById GET /pet/{petId} Find pet by ID
PetApiInterface updatePet PUT /pet Update an existing pet
PetApiInterface updatePetWithForm POST /pet/{petId} Updates a pet in the store with form data
PetApiInterface uploadFile POST /pet/{petId}/uploadImage uploads an image
StoreApiInterface deleteOrder DELETE /store/order/{orderId} Delete purchase order by ID
StoreApiInterface getInventory GET /store/inventory Returns pet inventories by status
StoreApiInterface getOrderById GET /store/order/{orderId} Find purchase order by ID
StoreApiInterface placeOrder POST /store/order Place an order for a pet
UserApiInterface createUser POST /user Create user
UserApiInterface createUsersWithArrayInput POST /user/createWithArray Creates list of users with given input array
UserApiInterface createUsersWithListInput POST /user/createWithList Creates list of users with given input array
UserApiInterface deleteUser DELETE /user/{username} Delete user
UserApiInterface getUserByName GET /user/{username} Get user by user name
UserApiInterface loginUser GET /user/login Logs user into the system
UserApiInterface logoutUser GET /user/logout Logs out current logged in user session
UserApiInterface updateUser PUT /user/{username} Updated user

Documentation For Models

Documentation For Authorization

api_key

  • Type: API key
  • API key parameter name: api_key
  • Location: HTTP header

petstore_auth

Author