A quick 'n easy way to generate your OpenAPI spec based on a JSON object. Useful for bootstrapping your component schemas. This is intended to be a starting point for writing your specification, as the tool cannot infer types such as enum, oneOf, maximum/minimum, and so on. It also does not support generating endpoints or error responses. All it does is take your JSON object and turns it into an OpenAPI schema object, along with a simple example spec that you can expand on.
Supports generating an OpenAPI spec in JSON
or yaml
.
composer require dsuurlant/response2schema
Or download the phar from the Releases page.
Just point Response2Schema to your input json file, and tell it where to put the output OpenAPI spec.
It will automatically format it to json or yaml based on the extension of the output path.
./vendor/bin/response2schema response.json openapi.yaml
Or when using the phar:
./response2schema.phar response.json openapi.yaml
Given a very simple response:
{
"id": 1,
"name": "Example Response"
}
Response2Schema generates the following spec:
openapi: 3.0.0
info:
title: 'OpenAPI specification automatically generated by Response2Schema.'
description: 'Please adapt this specification to your own needs.'
version: 1.0.0
paths:
/resource:
get:
description: 'Description of the endpoint'
operationId: getResource
responses:
'200':
description: 'Description of this response.'
content:
application/json:
schema:
$ref: '#/components/schemas/Resource'
components:
schemas:
Resource:
type: object
properties:
id:
type: integer
name:
type: string
It will always generate the example endpoint and a schema named 'Resource'.
The best way to use this tool is to take this as a starting point, or copy-paste the schema definition to your own OpenAPI spec.
Built and maintained by Daniëlle Suurlant.
Relies heavily on the awesome PHP OpenAPI library cebe/php-openapi.