* Ensure CLI-level generator settings are available in additional properties * Initial conversion to yaml configs Configs prefix with 1- need to be manually evaluated. * Add "other" configs not in ensure-up-to-date * Add other/openapi3 files * Cleanup all generation scripts * Clean up: add missed configs and fix some openapi 3 diffs * Move generate-samples script, error on batch failures * Temporarily disable elm which requires skip validation of spec * CI updates (todo: run all generators through appveyor or move to github workflows) * Add success count to batch generation command output * [samples] Regenerate * Remove bin/windows * Generate swift5 samples in bitrise * Expand user input glob pattern * Regenerate samples * Update PR template * Support config based generateAliasAsModel * [samples] Regenerate * [rust] Generate as alias for all samples configs * [csharp] Move test staged file changes to in-directory * Include "live" test files and ignore test cache files from samples.ci * Remove concept of samples.ci staging Generators support .openapi-generator-ignore, allowing maintainers to explicitly ignore the regeneration of files which have been modified. Note that the tooling does not overwrite test files whenever those files exist, and it's not entirely necessary to add test files to the ignore file. * Re-add meta generator scripts * Modify ensure-up-to-date to log stdout, so script does not look like it hangs on slower machines * [csharp] Regenerate sample * Set generateAliasAsModel CodegenConfigurator#toContext This ensures the property (which is effectively a thread-local) gets set as expected if the caller resets GlobalSettings as is done in the GenerateBatch command. * [rust] Regenerate samples * Re-enable elm * [java] Support OffsetDateTime example, fail ensures script on any generation error * [samples] Regenerate * Fix jersey2-java8 ignore file * Fix elm spec validation * Force UTC in sample generation to avoid timezone conflicts during generation (user vs ci) Co-authored-by: William Cheng <wing328hk@gmail.com>
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