Closed3

CDK Days 2022 / Schema-driven OpenAPI Development with CDK

hassaku63hassaku63

OpenAPI (a.k.a. "Swagger") is a language-agnostic definition for RESTful APIs. There's already a vast ecosystem of tooling built around OpenAPI schemas but using it with CDK has not been "an optimal experience" so far – I want to change that!

なにかしら、開発体験が悪い部分があったらしい。

https://youtu.be/Ey7bNVT4W1g

hassaku63hassaku63

"API Gateway における、すべてのリソースとメソッドはすべて、 OpenAPI Specification file の一部として定義される必要がある。そして、CDK 経由では追加できない"

と言っている。

OpenAPI + CDK が辛い理由

  • Build a solution to pass data (Token valus) from CDK code to OpenAPI definition
  • We need to have a lot of ugly x-amazon-apoigateway- extensions within the OpenAPI YAML definition (exposing implementation detail)
  • Duplicate (copy-paste) lot of configuration values all over the place in OpenAPI YAML
hassaku63hassaku63

lambda.LambdaIntegration で使っている IntegrationProps を x-amazon-apigateway- にマップするためのユーティリティを作ったらしい。

どうやら、 OpenApiX という名前で公開している模様

https://github.com/alma-cdk/openapix

  • Lambda Integrations
  • Mock integrations
  • HTTP Integrations
  • AWS Service Integrations

をサポートしていて、 SFn Express workflow Integations への対応を計画している。

他、次のような機能もある

  • Request validations
  • Cognito Authorizers
  • Lambda Authrizers
  • CORS Configuration
  • Inject / Reject Fields
  • Inline Definition or (upload) S3 Definition
# try it out
$ npm i -D @alma-cdk/openapix
このスクラップは2022/05/27にクローズされました