各製品の資料を入手。
詳細はこちら →CData API Server が出力する Datetime 型のフォーマットを変更する
こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は CData API ServerのTips、Datetime型のフォーマットを変更方法をお伝えしたいと思います。
DateTime型のフォーマットとは?
CData API Serverでは、DateTime型のフォーマットが存在した場合、データソース側での持ち方に関わらず、一度CData API Serverのフォーマットに変換して出力するようになっています。
例えば、MySQL の以下のサンプルテーブルにあるTimeStampをAPI Server経由でAPI化した場合
以下のようなレスポンスを返すAPIになります。
ベーシックな使い方であれば、問題が無いことが多いですが、例えばSalesforce ConnectでCData API Serverを組み合わせて利用する場合など、このDateTime型のフォーマットが受け入れられないといったケースがあると思います。
そんな時に、CData API Server ではこのフォーマットを調整することができる機能が提供されているので、この方法をお伝えしたいと思います。
変更方法
設定は簡単で「settings.cfg」という、API Serverの接続設定などを管理しているファイルを変更するだけです。
「settings.cfg」はWindows版の場合は「C:\ProgramData\CData\apiserver」フォルダ
Linux版の場合は「/opt/apiserver」のフォルダに配置されています。
AMI版でV20など古いバージョンを利用している場合は「/home/jetty/cdata/apiserver」のフォルダに存在します。
この「settings.cfg」の中に、以下のような形で「odatadatetimeformat 」を追加します。
[Application] trustedip = * registerstatus = INSTALLED 10/25/2021 recordsperpage = 10 odatadatetimeformat = yyyy-MM-dd'T'HH:mm:ss.sss'Z' [Connections] <!-- 省略 -->
設定後、API Serverを再起動することで、以下のようにフォーマットが変更されます。
以下のように無理やり日付オンリーのフォーマットに変更することも可能です。
odatadatetimeformat = yyyy-MM-dd
管理用DBを使用している場合
管理用DBを使用している場合は、管理用DBの設定が優先されます。
以下のように管理用DBに設定を書き込んで反映させてください。
- odatadatetimeformatが無い場合
insert into app_settings(section, name, value) values('Application','odatadatetimeformat','yyyy/MM/dd HH:mm:ss');
- odatadatetimeformatがある場合
update app_settings set value = 'yyyy-MM-dd HH:mm:ss' where name = 'odatadatetimeformat';
フォーマット変更の注意事項
日付フォーマットですが、CData API Serverが受け入れられないフォーマットが指定された場合、エラーなどにはならず、デフォルトのフォーマットが利用されます。
勘違いしやすいので要注意ですね。
その他、気になることがあれば、テクニカルサポートまでお気軽にお問い合わせください。
https://www.cdata.com/jp/support/submit.aspx