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 (事前承認)」コネクタを使っても大丈夫です。


例
テナント設定
GET https://graph.microsoft.com/v1.0/admin/sharepoint/settings?$whatif
{
"Description": "Execute HTTP request",
"Uri": "https://{tenant-name}.sharepoint.com/_api/v2.1/tenant/settings",
"HttpMethod": "GET",
"TargetWorkloadId": "Microsoft.FileServices"
}
サイトページの発行
GET https://graph.microsoft.com/v1.0/sites/{site-id}/pages/{page-id}/microsoft.graph.sitePage/publish?$whatif
{
"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でも動作したりします。
GET _api/v2.0/sites('{site-id}')/pages/{page-id}/publish/oneDrive.page/oneDrive.Publish
GET _api/v2.1/sites/{site-id}/pages/{page-id}/oneDrive.page/oneDrive.Publish
他の有志の記事を見るとだいたいv2.1を使っていますが、Microsoftとしてどちらを使うことが推奨されているかは定かではありません。
コメント