* Add samples composer.lock to root .gitignore composer.lock may produce CI errors when you need to test build against different PHP versions. However users most likely want to commit this file, so I think it's better to exclude it only in root .gitignore. * Commit composer.lock in default PHP templates * Refresh samples
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
- Type: OAuth
- Flow: implicit
- Authorization URL: http://petstore.swagger.io/api/oauth/dialog
- Scopes:
- write:pets: modify pets in your account
- read:pets: read your pets