OData v4 の機能
サポートされているオペレーター
|
認証オプション |
説明 |
|
|
比較オペレーター |
|
|
|
eq |
等しい |
companyname eq ‘Able Computing’ |
|
ne |
等しくない |
companyname ne ‘Able Computing” |
|
gt |
より大きい |
price gt 20 |
|
ge |
以上 |
price ge 10 |
|
lt |
より小さい |
price lt 20 |
|
le |
以下 |
price le 100 |
|
論理オペレーター |
|
|
|
and |
論理 AND |
Price le 200 and Price gt 3.5 |
|
or |
論理 OR |
Price le 3.5 or Price gt 200 |
|
not |
論理否定 |
not endswith (Description,'milk') |
|
オペレーター |
説明 |
例 |
|
算術オペレーター |
|
|
|
add |
加算 |
Price add 5 gt 10 |
|
sub |
減算 |
Price sub 5 gt 10 |
|
mul |
乗算 |
Price mul 2 gt 2000 |
|
div |
除算 |
Price div 2 gt 4 |
|
mod |
剰余 |
Price mod 2 eq 0 |
|
グループ化オペレーター |
|
|
|
( ) |
優先グループ化 |
(Price sub 5) gt 10 |
サポートされている関数
|
関数 |
例 |
|
文字列関数 |
|
|
contains |
contains (CompanyName,'freds') |
|
endswith |
endswith (CompanyName,'Futterkiste') |
|
startswith |
startswith (CompanyName,'Alfr') |
|
length |
length (CompanyName) eq 19 |
|
indexof |
indexof (CompanyName,'lfreds') eq 1 |
|
substring |
substring (CompanyName,1) eq 'lfreds Futterkiste' |
|
tolower |
tolower (CompanyName) eq 'alfreds futterkiste' |
|
toupper |
toupper (CompanyName) eq 'ALFREDS FUTTERKISTE' |
|
trim |
trim (CompanyName) eq 'Alfreds Futterkiste' |
|
concat |
concat (concat (City,', ') , Country) eq 'Berlin, Germany' |
|
日付関数 |
|
|
year |
year (BirthDate) eq 0 |
|
month |
month (BirthDate) eq 12 |
|
day |
day (StartTime) eq 8 |
|
hour |
hour (StartTime) eq 1 |
|
minute |
minute (StartTime) eq 0 |
|
second |
second (StartTime) eq 0 |
|
fractionalseconds |
second (StartTime) eq 0 |
|
date |
date (StartTime) ne date (EndTime) |
|
time |
time (StartTime) le StartOfDay |
|
totaloffsetminutes |
totaloffsetminutes (StartTime) eq 60 |
|
now |
StartTime ge now () |
|
mindatetime |
StartTime eq mindatetime () |
|
maxdatetime |
EndTime eq maxdatetime () |
|
算術関数 |
|
|
round |
round (Freight) eq 32 |
|
floor |
floor (Freight) eq 32 |
|
ceiling |
ceiling (Freight) eq 33 |
|
タイプ関数 |
|
|
cast |
cast (ShipCountry,Edm.String) |
パブリッシュ リソースのサポート
OData v4 では次がサポートされます。
| • | パブリッシュされたすべてのデータベースと Web サービス リソース。 |
| • | マスター キーが定義されていないパブリッシュ ビュー。 |
| • | 複数の入力カーソルと出力カーソルを持つプロシージャ。 |
| • | 定義された関係を持つテーブル/ビューのナビゲーション リンクをサポートします。 |
例
パラメーターを持つプロシージャを呼び出します。
http://dvbu-vdi-002:9400/odata4/webservices/ds/LookupProduct (desiredProduct=1
入力カーソルを持つプロシージャを呼び出す
<m:value xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:d="http://docs.oasis-open.org/odata/ns/data" m:type="#Edm.LookupProductReturnType" m:context="http://dvbu-vdi- 002:9400/odata4/webservices/ws$metadata">
<m:parameters>
<d:result m:type="#Collection(Edm.result)">
<m:element>
<d:ProductName>Maxtific 40GB ATA133 7200</d:ProductName>
<d:ProductID m:type="Int32">1</d:ProductID>
<d:ProductDescription> 最大ストレージ 40 GB</d:ProductDescription>
</m:element>
</d:result>
</m:parameters>
</m:value>
ページネーションのサポート
OData v4 は、サーバー側のページネーションをサポートしています。
デフォルトでは、ページサイズは 10,000 行に設定されています。この値は、[Studio] > [管理] > [構成] > [サーバー] > [Web サービス インターフェイス] > [OData] > [ODATA 最大ページサイズ] でサーバー構成を調整することで変更できます。最大ページサイズは 100,000 行を超えることができないことに注意してください。
この設定は、クライアントに送信する行の最大数を決定します。クライアントはこの設定をオーバーライドできますが、この設定を超えることはできません。クライアントは、HTTP ヘッダー「Prefer: odata.maxpagesize=XXX」を介して設定できます。クライアントに返される部分データセットには、「href」値が次の部分データセットの URI である「next」関係を持つ atom:link が含まれます。
さらに、ODATA Skiptoken 設定を調整して、odata システム クエリ オプション $skiptoken を介してサーバー主導のページングを有効にすることができます。このオプションが False に設定されている場合、ページングは代わりに odata システム クエリ オプション $skip を使用するため、パフォーマンスの問題が発生する可能性があります。
例
1. 以下の例では、クライアントは応答ごとに 8 行のみを要求します。
curl -u admin:admin "http://localhost:9400/odata4/webservices/soap_test/view_test/CompositeView?\$format=xml" -H "Prefer: odata.maxpagesize=8"
2. サーバーでページネーションが有効になっている場合、応答には、url 属性 skiptoken を含む追加のエレメントが含められます。
<a:link rel="next" href="http://localhost:9400/odata4/webservices/soap_test/view_test/CompositeView?%24format=xml&%24skiptoken=54ed17bcx39b1x4648x8e3axe146c401d935"/></a:feed>
結果セットを繰り返すには、前の応答で提供されたスキップ トークンが必要です。表示する結果セットがさらにある場合、応答は新しいスキップ トークンを生成します。
タイムアウト
サーバー プロパティ OData Timeout を調整することで、OData ページ分割されたリクエストのリクエストタイムアウトを制御できます。これにアクセスするには、[管理] > [構成] > [サーバー] > [Web サービス] > [OData] > [Odata タイムアウト] を選択します。ページ分割されたリクエストの指定値は秒単位です。無制限の場合は 0 を使用します。ODATA タイムアウトを微調整するには、セッションのパージ期間 ([管理] > [構成] > [サーバー] > [ランタイム処理情報] > [セッション]) を調整する必要もあります。
サポートされているクエリ オプション
次のクエリ オプションがサポートされます。
| • | $apply |
| • | $count |
| • | $expand |
| • | $filter |
| • | $levels |
| • | $orderby |
| • | $search |
| • | $select |
| • | $skip |
| • | $top |