This package has been deprecated

Author message:

@cadl-lang packages are deprecated use @typespec instead.

@cadl-lang/openapi
TypeScript icon, indicating that this package has built-in type declarations

0.40.0 • Public • Published

Cadl OpenAPI Library

This package provide Cadl decorators to specify some OpenAPI specific concepts.

Install

In your cadl project root

npm install @cadl-lang/openapi

Usage

import "@cadl-lang/openapi";

using OpenAPI;

References

Decorators:

@defaultResponse

IMPORTANT This is to be used on NON-ERROR responses that cover all the other status codes. If you are looking to represent an error use @error

Decorator that can be used on a response model to specify the default status code that OpenAPI allow.

@defaultResponse
model MyNonErrorResponse {}

op foo(): MyNonErrorResponse;

@extension

This decorator lets you specify custom key(starting with x-) value pair that will be added to the OpenAPI document. OpenAPI reference on extensions

Arguments:

Name foo Description
key Required Extension key. MUST start with x-
value Required Value of the extension. Can be an primitive, a tuple or a model.
@extension("x-custom", "MyCustomValue")
model Foo {}

// Value can be an model.
@extension(
  "x-custom",
  {
    some: "value",
  }
)
model Foo {}

@externalDocs

Decorator that can be used to provide the externalDocs property on OpenAPI elements. OpenAPI spec for externalDocs

Arguments:

Name foo Description
url Required Url for the external docs
description Optional Description of the documentation
@externalDocs("https://example.com", "More info there")
model Foo {}

@operationId

Decorator that can be used on an operation to specify the operationId field in OpenAPI. If this is not provided the operationId will be the cadl operation name.

Arguments:

Name foo Description
opId Required Id of the operation
@operationId("custom_Foo")
op foo(): string;

See also

Readme

Keywords

Package Sidebar

Install

npm i @cadl-lang/openapi

Weekly Downloads

27

Version

0.40.0

License

MIT

Unpacked Size

31.3 kB

Total Files

28

Last publish

Collaborators

  • azure-sdk