0
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?

More than 3 years have passed since last update.

Microsoft Graph で使える Delta Query をもう少し試してみる

Last updated at Posted at 2021-05-04

ブログからの転載

経緯

前回は Delta Query のドキュメントをななめ読みしたが、そこで気になった点もあるので色々と確認してみる

今回試すのは、Azure AD のユーザー変更の追跡

変更がない時のレスポンス

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に値はない

登録があった時のレスポンス

Azure AD にユーザーを 1 人追加した後に試行

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に追加したユーザーの情報が入る

変更があった時のレスポンス

先に登録したデルタクエリーテスト用の部署を変更した後に試行

削除があった時のレスポンス

先に登録したデルタクエリーテスト用を削除
※削除されたユーザーには残っている状態

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に削除したユーザーの情報が入る
    @removed.reasonchanged となっている

デルタクエリーテスト用を完全に削除
※削除されたユーザーからも削除

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に削除したユーザーの情報が入る
    @removed.reasondeleted となっている

登録後、変更があった時1

  1. デルタクエリーテスト用2 を作成
  2. デルタクエリーテスト用2 の役職を変更
  3. デルタクエリーテスト用2 の会社名を変更

上記手順を行った後に試行

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に登録・変更したユーザーの情報が入る

登録後、変更があった時2

  1. デルタクエリーテスト用A を作成
  2. デルタクエリーテスト用B を作成
  3. デルタクエリーテスト用A の役職を変更
  4. デルタクエリーテスト用B の役職を変更
  5. デルタクエリーテスト用A の会社名を変更
  6. デルタクエリーテスト用B の会社名を変更

上記手順を行った後に試行

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に登録・変更したユーザーの情報が入る

    ※今回の確認では 1 つの id で複数の情報が出力されることはなかった

登録後、変更があって、削除があった時

  1. デルタクエリーテスト用A を作成
  2. デルタクエリーテスト用A の役職を変更
  3. デルタクエリーテスト用A を完全削除

上記手順を行った後に試行

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に削除したユーザーの情報が入る

変更があった時 ($select を利用)

初回の Delta Query に $select=displayName,companyName をつけてリクエストを送ったときにレスポンス例

想定だと、ここで displayName と companyName 以外の値を更新しても差分として出力されないはず

デルタクエリーテスト用Aを登録

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に追加したユーザーの情報が入る

ここまでは想定通り
次に、デルタクエリーテスト用Aの役職名 (jobTitle) を変更

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に値はない
    ※変更がないときと全く同じ

ここまで仕様通り
次に、デルタクエリーテスト用Aの会社名 (companyName) を変更

  • StatusCode は 200
  • nextLink URL はなく、deltaLink URL がある
  • value に変更したユーザーの情報が入る

バッチリ仕様通り

$filter の制限確認

$filter は id 以外は追跡できないらしい

初回の Delta Query に $filter=companyName eq 'FLEQ' をつけてリクエストを送るとエラーが表示された

Request_UnsupportedQuery と表示されているが、クエリーの書き方が間違っている可能性はあるので、試しに id を引っ掛けてみる

通ったので、仕様通り id 以外では $filter はできなさそうである

0
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
0
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?