Skip to content

Commit

Permalink
Update the OpenAPI decription article (#45779)
Browse files Browse the repository at this point in the history
Co-authored-by: Kevin Heis <[email protected]>
  • Loading branch information
skedwards88 and heiskr authored Nov 13, 2023
1 parent 1ea1a15 commit be89d27
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 31 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: About the OpenAPI description for the REST API
shortTitle: OpenAPI description
intro: 'The {% data variables.product.product_name %} REST API is fully described in an OpenAPI compliant document.'
versions:
fpt: '*'
ghes: '*'
ghec: '*'
topics:
- API
redirect_from:
- /rest/overview/openapi-description
---

## About OpenAPI

OpenAPI is a specification for describing REST API interfaces. It describes the API without requiring access to the source code or additional documentation. The specification is both human and machine readable. For more information, see [the OpenAPI specification documentation](https://spec.openapis.org/oas/v3.1.0).

## About {% data variables.product.company_short %}'s OpenAPI description

{% data variables.product.company_short %}'s OpenAPI description of the REST API is publicly available. You can find the description in the open source [github/rest-api-description](https://github.com/github/rest-api-description) repository.

{% data variables.product.company_short %} provides both 3.0 and 3.1 OpenAPI descriptions.

For each description, there is a version for each product: {% data variables.product.prodname_free_user %}/{% data variables.product.prodname_pro %}/{% data variables.product.prodname_team %} (`api.github.com`), {% data variables.product.prodname_ghe_cloud %} (`ghec`), {% data variables.product.prodname_ghe_managed %} (`github.ae`), and each version of {% data variables.product.prodname_ghe_server %} (`ghes-X.X`).

For each product, if date-based versioning is supported, there is also a description for each date-based version. For more information, see {% ifversion api-date-versioning%}"[AUTOTITLE](/rest/overview/api-versions)."{% else %}"[AUTOTITLE](/free-pro-team@latest/rest/overview/api-versions)" in the {% data variables.product.prodname_free_user %} documentation.{% endif %}

Each description is available in a bundled or in a dereferenced format. The bundled format uses `$ref` to refer to OpenAPI components that are shared between endpoints. The dereferenced format includes the fully expanded description.

## Using the {% data variables.product.company_short %} OpenAPI description

Because the OpenAPI description is machine readable, you can use it to do things like:

- Generate libraries to facilitate using the REST API
- Validate and test an integration that uses the REST API
- Explore and interact with the REST API using third-party tools, such as Insomnia or Postman

For example, {% data variables.product.company_short %} uses the OpenAPI description to generate the Octokit SDKs. {% data variables.product.company_short %} also uses the OpenAPI description to generate the REST API reference documentation for each endpoint.
3 changes: 2 additions & 1 deletion content/rest/overview/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ children:
- /keeping-your-api-credentials-secure
- /troubleshooting
- /libraries-for-the-rest-api
- /openapi-description
- /about-the-openapi-description-for-the-rest-api
- /issue-event-types
- /github-event-types
- /endpoints-available-for-github-app-installation-access-tokens
Expand All @@ -31,3 +31,4 @@ children:
redirect_from:
- /developers/overview
---

30 changes: 0 additions & 30 deletions content/rest/overview/openapi-description.md

This file was deleted.

0 comments on commit be89d27

Please sign in to comment.