CData API Server が出力する Datetime 型のフォーマットを変更する

by 杉本和也 | 2021年12月07日

f:id:sugimomoto:20211206151132p:plain こんにちは。CData Software Japan リードエンジニアの杉本です。

今回は CData API ServerのTips、Datetime型のフォーマットを変更方法をお伝えしたいと思います。

www.cdata.com

DateTime型のフォーマットとは?

CData API Serverでは、DateTime型のフォーマットが存在した場合、データソース側での持ち方に関わらず、一度CData API Serverのフォーマットに変換して出力するようになっています。

例えば、MySQL の以下のサンプルテーブルにあるTimeStampをAPI Server経由でAPI化した場合

f:id:sugimomoto:20211206151003p:plain

以下のようなレスポンスを返すAPIになります。

f:id:sugimomoto:20211206150743p:plain

ベーシックな使い方であれば、問題が無いことが多いですが、例えば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」のフォルダに存在します。

f:id:sugimomoto:20211206150749p:plain

この「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を再起動することで、以下のようにフォーマットが変更されます。

f:id:sugimomoto:20211206150754p:plain

以下のように無理やり日付オンリーのフォーマットに変更することも可能です。

odatadatetimeformat = yyyy-MM-dd

f:id:sugimomoto:20211206150758p:plain

管理用DBを使用している場合

管理用DBを使用している場合は、管理用DBの設定が優先されます。

以下のように管理用DBに設定を書き込んで反映させてください。

f:id:sugimomoto:20220225140551p:plain

  • 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が受け入れられないフォーマットが指定された場合、エラーなどにはならず、デフォルトのフォーマットが利用されます。

勘違いしやすいので要注意ですね。

f:id:sugimomoto:20211206150802p:plain

その他、気になることがあれば、テクニカルサポートまでお気軽にお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。