TypeSpec is a language for describing cloud service APIs and generating other API description languages, client and service code, documentation, and other assets.
This repository adds common Azure-specific TypeSpec libraries to the TypeSpec core that is pulled in as a git submodule.
You can try TypeSpec on the web without installing anything. TypeSpec playground for Azure services
- Please install Node.js 16 LTS and ensure you are able to run the npm command in a command prompt:
npm --version
. - It is recommended to have npm 7+. To update npm run
npm install -g npm
For TypeSpec language documentation, see https://microsoft.github.io/typespec.
If you are team working on Azure, see TypeSpec Azure development documentation https://azure.github.io/typespec-azure. You should pre-install as well @azure-tools/typespec-azure-core
to define Azure resources, and @azure-tools/typespec-autorest
to export in Swagger:
npm install @typespec/rest @typespec/openapi3 @azure-tools/typespec-azure-core @azure-tools/typespec-autorest
If you plan to use the output openapi with autorest or any of the azure sdk tooling you should use typespec-autorest, the openapi3 emitter is not going to have any of the ms extensions (pageable, lro, client name, etc.) and so it will be losing information.
Information on using TypeSpec within build pipelines can be found here
Name | Changelog | Latest | Next |
---|---|---|---|
@azure-tools/typespec-autorest | Changelog | ||
@azure-tools/typespec-azure-core | Changelog | ||
@azure-tools/typespec-resource-manager | Changelog |
@next
version of the package are the latest versions available on the main
branch.
The main packages in this repository can be considered a series of layers which progressively add functionality for specific scenarios:
- @azure-tools/typespec-azure-core: Provides core models and interfaces for Azure service modelling
- @azure-tools/typespec-azure-resource-manager: Provides additional models and interfaces for modelling Azure Resource Manager services