Download the PHP package elastic/openapi-codegen without Composer
On this page you can find all versions of the php package elastic/openapi-codegen. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package openapi-codegen
Elastic OpenAPI PHP client generator.
Make easier clients creation by generating most of the code from an Open API specification.
Projects using the Elastic OpenAPI PHP client generator:
Contents
- Getting started
- Using the client
- FAQ
- Contribute
- License
Getting started with the generator 🐣
Requirements
We assume you have the following components installed and available in your environment :
- Docker (used to run the code generator)
- composer
Initiliaze project
When you want to create a new client you have first to create a new composer project :
Once the project is created you should pimp up your composer.json
file (package name, author, ...).
Make sure the autoload section contains the PHP namespace you want to use for your client (here Fancy\Client
):
Once the project is created , you have to append the code generator as a requirement of the project:
Configuring the generator
By convention, the code generator expect the resources/api
folder containing two files :
-
api-spec.yml
: The OpenAPI specification that describe the server API. You can find a full featured example at : https://github.com/swiftype/swiftype-site-search-php/blob/master/resources/api/api-spec.yml config.json
: A configuration file contains important variable variables that allow to configure both code and documentation generation :
Running the generator
Once the project is setup and the generator is configured, you can run code generation by using the launcher script from the root of your project :
The generator will create or update the following files in your project :
-
Client.php
: The client class that contains one method for each paths / operation of your specification. -
*`Endpoint/.php`**: One endpoint class for each path / operation of your specification.
README.md
: The Readme of your project (see here for how to customize the documentation)
Create the client builder
Client instantiation logic is very specific for each project and need to be customized for each project (authentication management, error handling). At the same time end users of your client expect a very easy to use method to instantiate the client.
Here is a code for providing a very basic client builder to end users:
Using the client
Once you will have fulfilled the tasks above, it is very simple for end user to get client they can use :
Customization
Now you have a working client, there is several things that you may want to customize :
- Client and Endpoint code generation
- Documentation generation
- Connection logic : request and response handling, authentication, ...
You can find a full documentation of available extension point in the Customization documentation.
FAQ 🔮
Where do I report issues with the client?
If something is not working as expected, please open an issue.
Contribute 🚀
We welcome contributors to the project. Before you begin, a couple notes...
- Before opening a pull request, please create an issue to discuss the scope of your proposal.
- Please write simple code and concise documentation, when appropriate.
License 📗
Thank you to all the contributors!