> For the complete documentation index, see [llms.txt](https://dailyjournal.gitbook.io/notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dailyjournal.gitbook.io/notes/web-frameworks/asp.net-core/web-apis/openapi.md).

# OpenAPI

A language-agnostic specification for describing REST APIs

OpenAPI allows both computers and humans to understand the capabilities of a REST API without direct access to the source code.&#x20;

Its main goals are to:

* Minimize the amount of work needed to connect decoupled services.
* Reduce the amount of time needed to accurately document a service.

The two main OpenAPI implementations for .NET are [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) and [NSwag](https://github.com/RicoSuter/NSwag).

Swagger is tooling released by SmartBear that uses the OpenAPI specification. For example, OpenAPIGenerator and SwaggerUI.
