Skip to content

zero-to-prod/data-model-openapi30

Repository files navigation

Zerotoprod\DataModelOpenapi30

Repo GitHub Actions Workflow Status Packagist Downloads Packagist Version License

DataModels for OpenAPI 3.0.* specification.

Usage

use Zerotoprod\DataModelOpenapi30\OpenApi;

$OpenApi = OpenApi::from(json_decode($json, true));

$OpenApi->components->schemas['pet']->description;

Testing

./vendor/bin/phpunit

Acceptance Tests

Test Status
4.7.2.2 Info Object Example
4.7.3.2 Contact Object Example
4.7.4.2 License Object Example
4.7.5.2 Server Object Example
4.7.7.2 Components Object Example
4.7.8.3 Paths Object Example
4.7.9.2 Path Item Object Example
4.7.10.2 Operation Object Example
4.7.11.2 External Documentation Object Example
4.7.12.5 Parameter Object Examples
4.7.13.2 Request Body Examples
4.7.14.2 Media Type Examples

Properties

This section describes the structure of the OpenAPI Description format

This is the root object of the OpenAPI Description.

Field Name Type Status
openapi string
info Info Object
servers [Server Object]
paths Paths Object
components Components Object
security Security Requirement Object
tags [Tag Object]
externalDocs External Documentation Object

The object provides metadata about the API.

Field Name Type Status
title string
description string
termsOfService string
contact Contact Object
license License Object
version string

Contact information for the exposed API.

Field Type Status
name string
url string
email email

License information for the exposed API.

Field Type Status
name string
url string

An object representing a Server.

Field Name Type Status
url string
description string
variables Map[string, Server Variable Object]

An object representing a Server Variable for server URL template substitution.

Field Name Type Status
enum [string]
default string
description string

Holds a set of reusable objects for different aspects of the OAS.

Field Name Type Status
schemas Map[string, Schema Object | Reference Object]
responses Map[string, Response Object | Reference Object]
parameters Map[string, Parameter Object | Reference Object]
examples Map[string, Example Object | Reference Object]
requestBodies Map[string, Request Body Object | Reference Object]
headers Map[string, Header Object | Reference Object]
securitySchemes Map[string, Security Scheme Object | Reference Object]
links Map[string, Link Object | Reference Object]
callbacks Map[string, Callback Object | Reference Object]

Holds the relative paths to the individual endpoints and their operations.

Field Name Type Status
/{path} Path Item Object

Describes the operations available on a single path.

Field Name Type Status
$ref string
summary string
description string
get Operation Object
put Operation Object
post Operation Object
delete Operation Object
options Operation Object
head Operation Object
patch Operation Object
trace Operation Object
servers Server Object
parameters [Parameter Object | Reference Object]

Describes a single API operation on a path.

Field Name Type Status
tags [string]
summary string
description string
externalDocs External Documentation Object
operationId string
parameters [Parameter Object | Reference Object]
requestBody Request Body Object | Reference Object
responses Responses Object
callbacks Map[string, Callback Object | Reference Object]
deprecated boolean
security [Security Requirement Object]
servers [Server Object]

Allows referencing an external resource for extended documentation.

Field Name Type Status
description string
url string

Describes a single operation parameter.

The rules for serialization of the parameter are specified in one of two ways. Parameter Objects MUST include either a content field or a schema field, but not both.

These fields MAY be used with either content or schema.

Field Name Type Status
name string
in string
description string
required boolean
deprecated boolean
allowEmptyValue [boolean]

For simpler scenarios, a schema and style can describe the structure and syntax of the parameter.

Field Name Type Status
style string
explode boolean
allowReserved boolean
schema Schema Object | Reference Object
example Any
examples Map[ string, Example Object | Reference Object]
Field Name Type Status
content Map[string, Media Type Object]

Describes a single request body.

Field Name Type Status
description string
content Map[string, Media Type Object]
required boolean

Each Media Type Object provides schema and examples for the media type identified by its key.

Field Name Type Status
schema Schema Object | Reference Object
example Any
examples Map[string, Example Object | Reference Object]
encoding Map[string, Encoding Object]

A single encoding definition applied to a single schema property.

These fields MAY be used either with or without the RFC6570-style serialization fields defined in the next section below.

Field Name Type Status
contentType string
headers Map[string, Header Object | Reference Object]
Field Name Type Status
style string
explode boolean
allowReserved boolean

A container for the expected responses of an operation. The container maps an HTTP response code to the expected response.

Field Name Type Status
default Response Object | Reference Object
Field Name Type Status
HTTP Status Code Response Object | Reference Object

Describes a single response from an API operation, including design-time, static links to operations based on the response.

Field Name Type Status
description string
headers Map[string, Header Object | Reference Object]
content Map[string, Media Type Object]
links Map[string, Link Object | Reference Object]

An object grouping an internal or external example value with basic summary and description metadata.

Field Name Type Status
summary string
description string
value Any
externalValue string

The Link Object represents a possible design-time link for a response.

Field Name Type Status
operationRef string
operationId string
parameters Map[string, Any | {expression}]
requestBody Any | {expression}
description string
server Server Object

Describes a single header for HTTP responses and for individual parts in multipart representations.

These fields MAY be used with either content or schema.

Field Name Type Status
description string
required boolean
deprecated boolean

For simpler scenarios, a schema and style can describe the structure and syntax of the header.

Field Name Type Status
style string
explode boolean
schema Schema Object | Reference Object
example Any
examples Map[string, Example Object | Reference Object]

For more complex scenarios, the content field can define the media type and schema of the header, as well as give examples of its use.

Field Name Type Status
content Map[string, Media Type Object]

Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.

Field Type Status
name string
description string
description External Documentation Object

A simple object to allow referencing other components in the OpenAPI Description, internally and externally.

Field Type Status
$ref string

The Schema Object allows the definition of input and output data types.

Field Name Type Status
title string
multipleOf number
maximum number
exclusiveMaximum boolean
minimum number
exclusiveMinimum boolean
maxLength integer
minLength integer
pattern string
maxItems integer
minItems integer
uniqueItems boolean
maxProperties integer
minProperties integer
required array
enum array
type string
allOf Reference Object | Schema Object
oneOf Reference Object | Schema Object
anyOf Reference Object | Schema Object
not Reference Object | Schema Object
items Reference Object | Schema Object
properties Reference Object | Schema Object
additionalProperties boolean |Reference Object | Schema Object
description string
format string
format Any
Field Name Type Status
nullable boolean
discriminator Discriminator Object
readOnly boolean
writeOnly boolean
xml XML Object
externalDocs External Documentation Object
example Any
deprecated boolean

When request bodies or response payloads may be one of a number of different schemas, a Discriminator Object gives a hint about the expected schema of the document.

Field Name Type Status
propertyName string
mapping Map[string, string]

A metadata object that allows for more fine-tuned XML model definitions.

Field Name Type Status
name string
namespace string
prefix string
attribute boolean
wrapped boolean

Defines a security scheme that can be used by the operations.

Field Name Type Status
type string
description string
name string
in string
scheme string
bearerFormat string
flows string
openIdConnectUrl string

Allows configuration of the supported OAuth Flows.

Field Name Type Status
implicit OAuth Flow Object
password OAuth Flow Object
clientCredentials OAuth Flow Object
authorizationCode OAuth Flow Object

Defines a security scheme that can be used by the operations.

Field Name Type Status
authorizationUrl string
tokenUrl string
refreshUrl string
scopes Map[string, string]

About

DataModels for OpenAPI 3.0.*

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages