Help us understand the problem. What is going on with this article?

【SAPUI5】OData(3) ODataのQuery optionsを使ってみる

Query optionsとは

第一回目の記事で、ODataはURIという識別子でアクセスすること、URIの形式は以下のようになっていることを説明しました。
image.png
OData Version 4.0 Part 2: URL ConventionsInformation published on non-SAP siteより引用

Query optionsは、リソースに対して追加で条件を指定して結果を絞り込んだり、必要な項目だけ取得したりするために使います。

※OData関連の投稿一覧は以下の記事をご参照ください。
【SAPUI5】OData(1) ODataとは

Query optionsの種類

以下にQuery optionの種類と使用例を掲載します。
ブラウザに使用例をコピーして貼り付けると、結果が確認できます。

Query options 用途 使用例 備考
$filter $filterの後に指定する条件で結果を絞り込む https://services.odata.org/TripPinRESTierService/People?$filter=FirstName eq 'Scott' 条件の指定方法は様々ある。詳しくはリファレンスを参考
$expand Navigation propertyで関連づけられたEntity Setを一緒に返す https://services.odata.org/TripPinRESTierService/People('keithpinckney')?$expand=Trips 左の例ではPeopleのEntity Setと、関連するTripsのEntity Setが返ってくる
$select $selectの後に指定するプロパティのみ取得する https://services.odata.org/TripPinRESTierService/Airports?$select=Name, IcaoCode
$orderby 結果を指定した並び順でソートする https://services.odata.org/TripPinRESTierService/(S(ufwrs1ttr010p5olpjnjh3z1))/People?$orderby=FirstName desc 降順に並べるときはdescを指定する
$top 指定した個数のデータを取得する https://services.odata.org/TripPinRESTierService/People?$top=2 左の例では先頭2件の結果が返される
$skip 指定した個数のデータを結果から除外する https://services.odata.org/TripPinRESTierService/People?$skip=18 結果を見ると、先頭から除外しているわけではなさそう
$count 条件に一致したデータの件数を返す https://services.odata.org/TripPinRESTierService/People/$count
$search フリーテキストの検索条件を指定し、条件に一致した結果を返す https://services.odata.org/TripPinRESTierService/(S(swdsvztrhy0xegmpily2f1xd))/People?$search=Boise 何をもって一致とするかは、ODataサービス側の実装による
$format 受け取るデータ形式を指定する(xml, jsonなど) https://services.odata.org/TripPinRESTierService/(S(swdsvztrhy0xegmpily2f1xd))/People?$format=json

参考

OData Version 4.0. Part 2: URL Conventions Plus Errata 03
Reference Services · OData - the Best Way to REST

関連記事

OData(2) ODataを構成するもの
OData(4) SAPでのODataサービスの作り方 環境編

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away