OpenAPI パーサー
OpenAPI 3.0 / 3.1 / 3.2 仕様を読み込むネイティブな Delphi クラスです。Swagger 2.0 ドキュメントは読み込み時に変換されます。すべてのエンドポイント、スキーマ、セキュリティ定義にプログラムからアクセスできます。
OpenAPI 3.0 / 3.1 / 3.2 仕様を読み込むネイティブな Delphi クラスです。Swagger 2.0 ドキュメントは読み込み時に変換されます。すべてのエンドポイント、スキーマ、セキュリティ定義にプログラムからアクセスできます。
フォームに配置するものはありません。sgcOpenAPI はコンポーネントを登録せず、デザインタイムパッケージも同梱しません。sgcOpenAPI_Classes.pas の TsgcOpenAPI をコードで生成し、任意の API 仕様を読み込みます。
ReadFromFile はパスを、Read は文字列としてのドキュメントを受け取ります。URL はコマンドラインツールが先にダウンロードします。JSON と YAML はどちらもローカルで読み込まれ、Swagger 2.0 ドキュメントもローカルで OpenAPI 3.0 に変換されます。
Paths、Webhooks、Components、Security、Servers、Tags、Info はオブジェクトのプロパティです。パス、オペレーション、パラメーター、リクエスト/レスポンスボディ、スキーマ、セキュリティスキームに、強く型付けされたモデルから到達できます。
TsgcOpenAPI_Parser_Client_Pascal は同じクラスを継承しており、ジェネレーターはリーダーにエミッターを載せたものです。派生させて Pascal ユニットを生成するか、モデルを自分でたどって独自のツールや自動化に活用できます。
$ref は展開されずに _Ref としてオブジェクトに保持されるため、モデルは展開済みでは届きません。外部ファイル参照と URL 参照は事前に TsgcOpenAPI_Bundle が取り込んで埋め込み、訪問済みを記憶し、最大深度で停止します。
AllOf、OneOf、AnyOf は Discriminator とそのマッピングとともにスキーマオブジェクトへ読み込まれ、コードジェネレーターがそれらを Pascal クラスに平坦化します。
Warnings には、info オブジェクトの欠落からジェネレーターが無視するキーワードまで、リーダーが処理しきれなかった内容がすべて集まり、読み込みごとにクリアされます。行と列は、パースできない YAML ドキュメントについて報告されます。