検証:Make REST API

ばるす

ばるす

この記事は「make Advent Calendar 2024」14日目の記事です。

このアドベントカレンダーについて

このアドベントカレンダーは25日間でIPaaS製品の「make」について使い方や、実践を学べる連続ブログ企画です。

おかしん」「ばるす」「たにあん」の3名がリレー形式でお届けします。

25日間のスケジュールは以下の通りです。

日付内容担当
12/1話題のIPaaS製品「make」とはおかしん
12/2makeで作ってみたScenario紹介ばるす
12/3make 基本操作編 機能紹介:Organizationたにあん
12/4make 基本操作編 機能紹介:Scenario、Templateおかしん
12/5make 基本操作編 機能紹介:Connectionsばるす
12/6make 基本操作編 機能紹介:Webhooksたにあん
12/7make 基本操作編 機能紹介:DataStores、DataStructuresおかしん
12/8make 基本操作編 機能紹介:Devicesばるす
12/9make 基本操作編 機能紹介:Functionsたにあん
12/10make 基本操作編 機能紹介:CustomAppsおかしん
12/11make 基本操作編 機能紹介:Flow Control,Tools,Text parserばるす
12/12make ドキュメント動線の話:ResourceHubたにあん
12/13make 検証:Make Bridgeおかしん
12/14make 検証:Make REST APIばるす
12/15make 検証:AI Searchたにあん
12/16make Community Hub:Overviewおかしん
12/17make Community Hub:Academy Courses,Blog Articlesばるす
12/18make Community Hub:Showcase,CustomAppsたにあん
12/19makeの管理運用の話:Github連携おかしん
12/20makeの管理運用の話:実行ログと再実行と停止中リクエスト滞留ばるす
12/21makeの管理運用の話:Connection権限管理たにあん
12/22makeで作ってみた事例:(未定)おかしん
12/23makeで作ってみた事例:(未定)ばるす
12/24makeで作ってみた事例:(未定)たにあん
12/25makeの総論を語るばるす

はじめに

どーもばるすです。少しずつ皆さんの時間軸に近づいてきました。誰がなんと言おうと今日は12/14です。

今日はmake本体が提供してるAPIの概要についてご紹介します。

APIについては一家言あるばるすですが、makeAPIはなかなか良いですよ。

まじ?これAPIでできるの?wwwって驚かされることもありました。

まずは一覧

リファレンス:Make.com – Public API Documentation

大項目中項目CreateGetUpdateDelete他にできることの概要活用例有用度
AdminUsers組織/チームへのユーザー追加、ロール設定、オーナー権限移管、組織間の権限管理ユーザー管理の自動化、一括登録★★★★
AdminTeamsチーム管理者の直接設定、組織内の複数チーム管理組織構造の自動構築★★★★
AdminOrganizations機能アクセス制御、データ転送量制限設定、White Label機能の管理マルチテナント環境の管理★★★
AdminPlatform settingsプラットフォームインスタンスの設定確認、デフォルトライセンス管理プラットフォーム設定の監視
Audit logs組織/チームの監査ログ取得、フィルター適用、詳細ログの確認、監査ログフィルターの取得コンプライアンス監査、セキュリティ監視★★★★★
Connections接続検証、更新可能なパラメータの一覧取得、接続名の変更、スコープ確認、接続データの設定接続管理の自動化、一括設定★★★★★
Custom propertiesStructure itemsプロパティ構造の作成、構造アイテムの管理、データの入力メタデータ管理、拡張属性の実装★★
Data storesDataレコードの一括操作、詳細更新、データストアの検索、レコードの一括管理、レコードの部分更新データの永続化、シナリオ間データ共有★★★★★
Data structuresデータ構造のクローン作成、構造の再利用、プラットフォーム間での移行データモデル管理、再利用可能な構造定義★★★★
Incomplete executions失敗シナリオの詳細確認、ブループリント取得、バンドル取得、実行ログの確認エラー処理の自動化、障害復旧★★★
Enumsタイムゾーン、国、ロケール、言語、通知設定、APIトークンスコープ、リージョン、ゾーン、変数タイプの一覧取得システム設定値の参照
Custom functionsコード検証、更新履歴確認、バージョン管理、関数の評価カスタム処理の実装、関数管理★★★
GeneralAPIサービスのPing確認、サービスの死活監視可用性監視、ヘルスチェック★★★★
HooksIncomingsWebhookの有効/無効化、Ping確認、自動データ構造学習の開始/停止、キュー管理、キュー統計情報の取得イベント駆動型統合の実装★★★★
HooksLogsWebhook実行ログの取得(3日分、Enterpriseは30日分)、実行詳細の確認実行履歴の分析、トラブルシューティング★★★★★
Keysキータイプの一覧取得、認証キーの管理、HTTPやEncryptorアプリでの認証管理セキュアな認証管理
Notifications通知の一括既読化、シナリオ問題の通知管理、新機能アップデートの通知管理ユーザー通知の自動管理★★
Organizations組織の作成・管理、カスタムアプリ管理、ユーザー招待組織管理の自動化★★★
OrganizationsUser organization rolesユーザーの組織ロール管理、ロール詳細の取得、オーナー権限の移管権限管理の自動化★★★
OrganizationsVariables組織変数の管理、更新履歴の確認、カスタム変数の作成と管理組織レベルの設定管理★★★
Scenariosシナリオの作成・管理、実行制御、クローン作成、モジュールデータの確認自動化プロセスの管理★★★★
ScenariosLogsシナリオ実行ログの取得、実行詳細の確認実行履歴の分析★★★★★
ScenariosBlueprintsブループリントの取得、バージョン履歴の確認バージョン管理★★★★★
ScenariosConsumptions使用量の確認、操作数とデータ転送量の監視リソース使用の最適化★★★★
ScenariosCustom propertiesカスタムプロパティの管理、データの設定と更新シナリオのメタデータ管理★★
Scenarios foldersシナリオの階層的な整理、フォルダ構造の管理プロジェクト管理の体系化★★
Teamsチームの作成・管理、使用量確認チーム運用の自動化★★★★★
TeamsUser team rolesチーム内のユーザーロール管理、ロール詳細の確認権限管理★★★★★
TeamsVariablesチーム変数の管理、更新履歴の確認、カスタム変数の作成と管理チームレベルの設定管理★★★
Templatesテンプレートの作成・管理、公開、承認リクエストテンプレート管理★★
TemplatesPublic公開テンプレートの一覧取得、詳細確認、ブループリント取得テンプレートの検索・利用★★
Usersユーザー情報の更新、メール更新、パスワード管理ユーザープロフィール管理★★★★★
UsersMe現在の認証ユーザーの情報取得、組織招待の確認ユーザー情報の取得★★★★
UsersAPI TokensAPIトークンの作成・管理、トークン一覧の取得API認証の管理★★★
UsersTeam rolesチームロールの管理、ロール詳細の確認チーム権限の管理★★★
UsersTeam notificationsチーム通知設定の管理、設定の確認と更新通知管理★★
UsersOrganization roles組織ロールの管理、ロール詳細の確認、オーナー権限の移管組織権限の管理★★★★

各評価基準と目安

評価特徴こういう使い方になりそう
★★★★★手動は無理でしょってやつの自動化に使えそう・CI/CDパイプラインでの自動デプロイ ・大規模組織でのユーザー管理自動化 ・システム死活監視との連携 ・マルチテナント環境での一括管理
★★★★自動化すると結構楽・シナリオのバージョン管理との連携 ・運用状況の定期レポート生成 ・複数環境間での設定同期 ・SLA監視とアラート通知
★★★使うときは使う・定期的なデータクレンジング ・利用状況の集計処理 ・バッチでのユーザー情報更新 ・特定条件での一括処理
★★基本的にポチポチ操作で良くね・初期環境構築時の設定 ・個別のリソース管理 ・テンプレートの作成・更新 ・1回限りの大規模変更
参照するだけとか・各種マスタ情報の参照 ・設定値の確認 ・単発の状態チェック ・個別通知の確認

ばるす所感

全体的に

  • 必要なCRUD操作はほぼ揃ってるし非常に包括的
  • GUIでしかできないことって何があるんだ?と思うくらいには豊富
  • ほとんどのGUI機能がAPIでカバーされていて、エンタープライズでの利用を意識した設計になっている印象 シナリオの完全なプログラマティック制御が可能な点
  • データストアやカスタム関数など、開発者向け機能も充実している
  • 監査ログやユーザー管理など、エンタープライズ環境で重要な管理機能も網羅されている

個別のAPIについて

  • Ping APImakeが生きてるかPingを送ってレスポンス受け取るAPI(うーんシンプル)
  • 自サービスの死活監視する用のAPIとか初めて見たわ、おもしろーw

Hooks/learn-start API

  • Webhook作った後、make側でWebhookのRequestJsonを学習するプロセスをAPIで開始して、このリクエストBodyに入れたパラメータをmake側が学習してScenario内で利用できるようにデータストラクチャを自動生成する
  • おもしろーw こういうのAPIでよしなにできるの稀な気がする。普通はJsonでデータストラクチャ定義しないと設定できないとかでしょ
  • リクエスト飛ばして学習させられるのは良いね

Notifications API

  • テナント全体の通知はこれで受け取れる
  • Scenario監視とかgeneralなmakeの監視はこのNotificationsで十分かも 仮説なので検証は必要

users/user-team-roles-2 API

  • ユーザーの権限/Roleの変更ができるAPI
  • 権限操作もAPIでやれるのは偉い

GUIと比較した際のAPIの制限事項

シナリオ作成時の制限

  • ビジュアルなフロー設計ができない(API経由では基本的にJSONでのシナリオ定義)
  • モジュール間の接続の視覚的な確認や調整が難しい
  • データマッピングのGUIツールが使えない

デバッグ関連の制限

  • リアルタイムのデータサンプル取得
  • インタラクティブなデータマッピングのテスト
  • ライブデバッグ実行

テンプレート関連

  • テンプレートギャラリーの視覚的なブラウジング
  • テンプレートの対話的なカスタマイズ

とはいえ、これらの「制限」のほとんどは、GUIの利便性に関するものであり、機能的な制限というよりはユーザーインターフェースの違いから生じる操作性の違いによるもの。

実際の運用ではGUIとAPIを組み合わせて使用することで、それぞれの長所を活かした効率的な運用が可能だと考えられますね。

こういう活用ができそう

リファレンス読んでいくつか動作確認してみた感じ、こういうことができそうです。

1. シナリオの死活監視

  • Ping:make自体の死活監視
  • List notifications:シナリオの実行エラーがないか取得
  • Get notification detail:実行エラーの詳細取得
  • List scenario logs:実行ログの取得
  • Get execution log:個別の実行ログの詳細取得
  • List incomplete executions:失敗したシナリオの一覧取得

2. シナリオの自動デプロイ

  • List scenarios:デプロイ対象のシナリオ一覧取得
  • Update scenario:環境に合わせた設定変更
  • Get scenario blueprint:シナリオ定義の取得
  • Activate scenario:デプロイ後の有効化
  • Run a scenario:デプロイ後の動作確認実行

3. データストアを使った外部システム連携

  • List data stores:利用可能なデータストアの一覧取得
  • Create data store:新規データストア作成
  • List data store records:保存データの取得
  • Create data store record:外部システムからのデータ登録
  • Update data store record:データの更新
  • Delete data store records:不要データの一括削除

おわりに

makeやるじゃん!

正直、これだけAPIが揃ってるとは思ってませんでした。

死活監視、自動デプロイ、外部連携…実運用でほしい機能はある程度揃ってる印象です。 ただAPIを提供すれば良いってわけじゃなくて、実際の運用シーンを想定した作りになってるのが素晴らしい。 ばるすの中でmakeへの好感度がアゲアゲです。

今回ご紹介した各APIを組み込んでmakeの管理運用を自動化してみたブログも後日書きたいところですね。 またすげー量になりそうなので気長にお待ちください。

ではでは。

この記事をシェア