のいのログ

SharePoint REST API v2のURIを調べるGraph APIの$whatifパラメータ

目次(クリックでジャンプできます)

SharePoint REST APIとMicrosoft Graph APIの関係

SharePoint REST API v1は従来のRESTサービスで、SharePoint REST API v2はMicrosoft Graph APIによって駆動されるAPIです。

v1とv2(Graph API)では共通の機能も多くありますが、一部片方しか対応していない機能もあるようです。

違いをスライドでまとめてくださっている方がいるので、詳細は以下を参照してください。

$whatifでエンドポイントの対応状況を確認する

Microsoft Graph REST API呼び出しがSharePoint Onlineによってサポートされているかどうかを確認するには、パスに$whatifパラメータをクエリとして追加することで、REST API v2で呼び出す際のURIを確認できます。

Graph Explorerを使うのが一番お手軽だと思います。

あとは、Power Automateで「HTTP with Microsoft Entra ID (事前承認)」コネクタを使っても大丈夫です。

テナント設定

HTTP Request
GET https://graph.microsoft.com/v1.0/admin/sharepoint/settings?$whatif
Response
{
    "Description": "Execute HTTP request",
    "Uri": "https://{tenant-name}.sharepoint.com/_api/v2.1/tenant/settings",
    "HttpMethod": "GET",
    "TargetWorkloadId": "Microsoft.FileServices"
}

サイトページの発行

HTTP
GET https://graph.microsoft.com/v1.0/sites/{site-id}/pages/{page-id}/microsoft.graph.sitePage/publish?$whatif
JSON
{
    "Description": "Execute HTTP request",
    "Uri": "https://{tenant-name}.sharepoint.com/_api/v2.0/sites('{site-id}')/pages/{page-id}/oneDrive.page/oneDrive.Publish",
    "HttpMethod": "GET",
    "TargetWorkloadId": "Microsoft.FileServices"
}

$whatifパラメータの使い所

Power Automateの「SharePointにHTTP要求を送信します」を使用する前にURIを確認する

$whatifパラメータの代表的な使い所としては、Power Automateのクラウドフローで「SharePointにHTTP要求を送信します」を使用するときです。

Power AutomateのSharePointコネクタは、今のところGraph APIに直接は対応していません。

Graph APIの機能を利用するときに、Graph API用のURIをそのまま指定しても、「SharePointにHTTP要求を送信します」アクションからは利用できません。

そのため、Graph ExplorerなどでREST API v2のURIを確認してからアクションを追加しましょう。

v2.0とv2.1の違いは謎

テナント設定のURIは_api/v2.1で、sitesの配下は_api/v2.0で出力されましたが、この違いは謎です。
v2.0のエンドポイントが返ってきた機能でも、少しURIをいじるとv2.1でも動作したりします。

HTTP
GET _api/v2.0/sites('{site-id}')/pages/{page-id}/publish/oneDrive.page/oneDrive.Publish
HTTP
GET _api/v2.1/sites/{site-id}/pages/{page-id}/oneDrive.page/oneDrive.Publish

他の有志の記事を見るとだいたいv2.1を使っていますが、Microsoftとしてどちらを使うことが推奨されているかは定かではありません。

シェアしていただけると嬉しいです!
  • URLをコピーしました!

この記事を書いた人

ローコード・RPAエンジニア。DX・業務効率化を専門に開発。

前職では鉄道運転士として働きながら、社内複業でSwift・Power Platformで業務効率化を推進していた。

応援する

コメント

コメントする

CAPTCHA


目次(クリックでジャンプできます)