Closed3
cadl -> typespec
概要
Cadlは、クラウドサービスAPIを記述し、他のAPI記述言語、クライアントとサービスのコード、ドキュメント、およびその他の資産を生成するための言語です。Cadlは、REST、OpenAPI、GraphQL、gRPC、およびその他のプロトコルで一般的なAPIシェイプを記述できる、拡張性の高いコア言語プリミティブを提供します。
リポジトリ
ドキュメント
最新の書き方の記事
オンラインで試したい
OpenAPIから移った人が見ると良い型定義
リンクまとめ
Error, Warning
<unknown location>:1:1 - warning @cadl-lang/rest/no-routes: Current spec is not exposing any routes. This could be to not having the service namespace marked with @serviceTitle.
時々ドキュメントが古い箇所がある。
emittersもすでにDeprecatedとなっている。
// Before
@serviceTitle("Pet Store")
@serviceVersion("v1")
namespace PetStore;
// After
@service({"Pet Store", version: "v1"})
namespace PetStore;
このようになるらしい
書き方サンプル
import "@cadl-lang/rest";
import "@cadl-lang/versioning";
using Cadl.Versioning;
@versioned(Versions)
@service({
title: "Widget Service",
})
namespace DemoService;
enum Versions {
"v1",
"v2",
}
using Cadl.Http;
using Cadl.Rest;
model Widget {
@key id: string;
weight: int32;
color: "red" | "blue";
@added(Versions.v2) name: string;
}
@error
model Error {
code: int32;
message: string;
}
interface WidgetService extends Resource.ResourceOperations<Widget, Error> {
@added(Versions.v2)
@get
@route("customGet")
customGet(): Widget;
}
このスクラップは2023/05/01にクローズされました