@readme/oas-examples
Version:
A collection of example OpenAPI 3.x and Swagger 2.0 documents.
369 lines (344 loc) • 14.3 kB
YAML
openapi: 3.0.3
info:
title: ReadMe custom OpenAPI extensions demo
description: https://docs.readme.com/docs/openapi-extensions
version: 1.0.0
servers:
- url: https://httpbin.org/anything
tags:
- name: Custom code samples
description: https://docs.readme.com/docs/openapi-extensions#custom-code-samples
- name: Statically defined headers
description: https://docs.readme.com/docs/openapi-extensions#static-headers
- name: Toggling interactivity
description: https://docs.readme.com/docs/openapi-extensions#disable-the-api-explorer
- name: Designate code sample languages
description: https://docs.readme.com/docs/openapi-extensions#code-sample-languages
- name: Toggling our CORS proxy
description: https://docs.readme.com/docs/openapi-extensions#cors-proxy-enabled
- name: Toggling API Metrics
description: https://docs.readme.com/docs/openapi-extensions#disable-api-metrics
paths:
'/x-code-samples':
post:
operationId: x-readme_code-samples
summary: Custom code samples with the "x-readme.code-samples" extension
description: |-
This is a demonstration of our handling of our `x-readme.code-samples` extension.
https://docs.readme.com/docs/openapi-extensions#custom-code-samples
tags:
- Custom code samples
requestBody:
required: true
content:
application/json:
schema:
'$ref': '#/components/schemas/Tag'
examples:
userRegistration:
value:
id: 1234
email: test@example.com
name: Test user name
userRegistration alt:
value:
id: 5678
email: test@example.com
name: Test user name
responses:
'200':
description: OK
content:
application/json:
examples:
TestExample:
summary: An example of a cat
value:
name: Fluffy
petType: Cat
color: White
gender: male
breed: Persian
'404':
description: Not Found
content:
application/json:
examples:
curlExample:
summary: An example of a cat
value:
missing: can't find your stuff dawg
x-readme:
code-samples:
- name: Custom cURL snippet
language: curl
code: curl -X POST https://api.example.com/v2/alert
install: brew install curl
correspondingExample: TestExample
- name: Another cURL snippet
language: curl
code: http POST https://api.example.com/v2/another-alert
install: brew install httpie
correspondingExample: curlExample
- language: curl
code: |-
# This custom cURL snippet does not have a custom name so it has the name of "Default #3".
curl -X POST https://api.example.com/v2/alert
- name: Yet another custom snippet
language: curl
code: curl -X POST https://api.example.com/v2/alert
install: brew install curl
correspondingExample: TestExample
- name: Yet another custom snippet
language: python
code: |-
import requests
print("do something idk")
install: pip install requests
correspondingExample: TestExample
- name: Yet another custom snippet
language: node
code: |-
import something from 'requestidk';
console.log('do something idk');
install: npm install requestidk
correspondingExample: curlExample
samples-languages:
- shell
- python
- node
get:
operationId: x-code-samples
summary: Custom code samples with the "x-code-samples" extension
description: |-
This is a demonstration of our handling of our `x-code-samples` extension.
> If this is present alongside `x-readme.code-samples` then the `x-readme.code-samples` extension will take precedence over this extension.
https://docs.readme.com/docs/openapi-extensions#custom-code-samples
tags:
- Custom code samples
responses:
'200':
description: OK
x-code-samples:
- name: Custom cURL snippet
language: curl
code: curl -X POST https://api.example.com/v2/alert
install: brew install curl
- language: curl
code: |-
# This custom cURL snippet does not have a custom name so it has the name of "Default #2".
curl -X POST https://api.example.com/v2/alert
'/x-headers':
post:
operationId: x-readme_headers
summary: Static headers with the "x-readme.headers" extension
description: |-
This is a demonstration of our handling of our `x-readme.headers` extension where when present, headers specified within it will be statically sent with API requests made in "Try It" and added into generated code snippets.
In this case we have statically defined an `x-api-key` header with the value of `static-value`.
https://docs.readme.com/docs/openapi-extensions#static-headers
tags:
- Statically defined headers
responses:
'200':
description: OK
x-readme:
headers:
- key: x-api-key
value: static-value
patch:
operationId: x-headers
summary: Static headers with the "x-headers" extension
description: |-
This is a demonstration of our handling of our `x-readme.headers` extension where when present, headers specified within it will be statically sent with API requests made in "Try It" and added into generated code snippets.
In this case we have statically defined an `x-api-key` header with the value of `static-value`.
> If this is present alongside `x-readme.headers` then the `x-readme.headers` extension will take precedence over this extension.
https://docs.readme.com/docs/openapi-extensions#static-headers
tags:
- Statically defined headers
responses:
'200':
description: OK
x-headers:
- key: x-api-key
value: static-value
'/x-explorer-enabled':
post:
operationId: x-readme_explorer-enabled
summary: Disable interactivity with the "x-readme.explorer-enabled" extension
description: |-
When `x-readme.explorer-enabled` is present on an operation and set to `false`, the reference guide will be non-interactive and though your users will still be able to fill out a form and receive an auto-generated code sample to use, they will not be able to make requests to your API with our "Try It" button.
https://docs.readme.com/docs/openapi-extensions#disable-the-api-explorer
tags:
- Toggling interactivity
requestBody:
content:
application/json:
schema:
'$ref': '#/components/schemas/Pet'
required: true
responses:
'200':
description: OK
security:
- petstore_auth:
- write:pets
- read:pets
x-readme:
explorer-enabled: false
patch:
operationId: x-explorer-enabled
summary: Disable interactivity with the "x-explorer-enabled" extension
description: |-
When `x-explorer-enabled` is present on an operation and set to `false`, the reference guide will be non-interactive and though your users will still be able to fill out a form and receive an auto-generated code sample to use, they will not be able to make requests to your API with our "Try It" button.
In this case we have statically defined an `x-api-key` header with the value of `static-value`.
> If this is present alongside `x-readme.explorer-enabled` then the `x-readme.explorer-enabled` extension will take precedence over this extension.
https://docs.readme.com/docs/openapi-extensions#disable-the-api-explorer
tags:
- Toggling interactivity
requestBody:
content:
application/json:
schema:
'$ref': '#/components/schemas/Pet'
required: true
responses:
'200':
description: OK
security:
- petstore_auth:
- write:pets
- read:pets
x-explorer-enabled: false
'/x-samples-languages':
get:
operationId: x-readme_samples-languages
summary: Control available code sample languages the "x-readme.samples-languages"
extension
description: |-
With an array of languages present in `x-readme.samples-languages` code samples will be generated for only those languages. If not present, it will default to: `curl`, `node`, `ruby`, `javascript`, and `python`.
https://docs.readme.com/guides/docs/openapi-extensions#code-sample-languages
tags:
- Designate code sample languages
responses:
'200':
description: OK
x-readme:
samples-languages:
- swift
post:
operationId: x-samples-languages
summary: Control available code sample languages the "x-samples-languages" extension
description: |-
With an array of languages present in `x-samples-languages` code samples will be generated for only those languages. If not present, it will default to: `curl`, `node`, `ruby`, `javascript`, and `python`.
> If this is present alongside `x-readme.samples-languages` then the `x-readme.samples-languages` extension will take precedence over this extension.
https://docs.readme.com/guides/docs/openapi-extensions#code-sample-languages
tags:
- Designate code sample languages
responses:
'200':
description: OK
x-samples-languages:
- swift
'/x-proxy-enabled':
post:
operationId: x-readme_proxy-enabled
summary: Disable funneling requests through our CORS proxy with the "x-readme.proxy-enabled"
extension
description: |-
When `x-readme.proxy-enabled` is set to `false` all requests from the interactive API Explorer will be funneled directly to the configured server URL, otherwise they will be piped through our proxy to allow [CORS-enabled](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) requests for you.
https://docs.readme.com/docs/openapi-extensions#cors-proxy-enabled
tags:
- Toggling our CORS proxy
responses:
'200':
description: OK
x-readme:
proxy-enabled: false
patch:
operationId: x-proxy-enabled
summary: Disable funneling requests through our CORS proxy with the "x-proxy-enabled"
extension
description: |-
When `x-proxy-enabled` is set to `false` all requests from the interactive API Explorer will be funneled directly to the configured server URL, otherwise they will be piped through our proxy to allow [CORS-enabled](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) requests for you.
> If this is present alongside `x-readme.proxy-enabled` then the `x-readme.proxy-enabled` extension will take precedence over this extension.
https://docs.readme.com/docs/openapi-extensions#cors-proxy-enabled
tags:
- Toggling our CORS proxy
responses:
'200':
description: OK
x-proxy-enabled: false
'/x-metrics-enabled':
post:
operationId: x-readme_metrics-enabled
summary: Disable tracking requests through our API Metrics product with the
"x-readme.metrics-enabled" extension
description: |-
When `x-readme.metrics-enabled` is set to `false` all requests from the interactive API Explorer will not be tracked for you within our [API Metrics product](https://readme.com/metrics) and you will not see any requests on that operations reference page that may have been logged to API Metrics through one of our many SDKs.
https://docs.readme.com/docs/openapi-extensions#disable-api-metrics
tags:
- Toggling API Metrics
responses:
'200':
description: OK
x-readme:
metrics-enabled: false
patch:
operationId: x-metrics-enabled
summary: Disable tracking requests through our API Metrics product with the
"x-metrics-enabled" extension
description: |-
When `x-metrics-enabled` is set to `false` all requests from the interactive API Explorer will not be tracked for you within our [API Metrics product](https://readme.com/metrics) and you will not see any requests on that operations reference page that may have been logged to API Metrics through one of our many SDKs.
https://docs.readme.com/docs/openapi-extensions#disable-api-metrics
tags:
- Toggling API Metrics
responses:
'200':
description: OK
x-metrics-enabled: false
components:
securitySchemes:
petstore_auth:
type: oauth2
flows:
implicit:
authorizationUrl: http://petstore.swagger.io/oauth/dialog
scopes:
write:pets: modify pets in your account
read:pets: read your pets
schemas:
Tag:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
Pet:
type: object
required:
- name
- photoUrls
properties:
id:
type: integer
format: int64
name:
type: string
example: doggie
photoUrls:
type: array
items:
type: string
tags:
type: array
items:
'$ref': '#/components/schemas/Tag'
status:
type: string
description: pet status in the store
enum:
- available
- pending
- sold