1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OData Common Schema Definition Language (CSDL) XMLをOpenAPIファイルに変換する

Posted at

はじめに

ODataを呼び出す機能を作成するにあたって、製品・ツール等の制約によりOpenAPIファイルが必要になることがありますが、プロバイダーからOpenAPIファイルを取得できるとは限りません。
後述のやり方で簡易にOpenAPIファイルを作成することができたので紹介します。

変換手順

1. OData Common Schema Definition Language (CSDL)の取得

ODataの仕様では、GETリクエストを/$metadataに送信することでCSDLファイルを取得することができます。(参考)

まずは対象のODataにアクセスしCSDLファイルを取得します。以下、例。

<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" xmlns="http://docs.oasis-open.org/odata/ns/edm">
    <edmx:Reference Uri="/xxx/yyy">
    :
</edmx:Edmx>

2.変換ツールの導入

以下のリンク先のツールを利用して変換を行います。
https://github.com/oasis-tcs/odata-openapi

Readmeを参照しツールをInstallします。
2024/11/09時点ではnpmコマンドを利用して導入します。

npm install -g odata-openapi

3.CSDLファイルをOpenAPIファイルに変換

以下のコマンドを実行し、CSDLファイルをOpenAPIファイルに変換します。

odata-openapi3 <CSDLファイル名>
<CSDLファイル名>.openapi3.json

例えば、"CSDL_sample.xml"を変換すると"CSDL_sample.openapi3.json"という名称のOpenAPIファイルが作成されます。

4.補足

変換ツールの旧バージョンでは、上述のコマンドではOData Version2のCSDLを変換できない事象が発生しました。(2024/11/09時点のバージョンでは変換できる)
その時は本ツールの別コマンド"odata-openapi"を利用することで変換することができましたので補足情報として記載します。
コマンド"odata-openapi"を利用したい場合、以下のReadmeに従って導入・実行ください。
https://github.com/oasis-tcs/odata-openapi/blob/main/tools/README.md

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?