LoginSignup
2
1

More than 1 year has passed since last update.

Hexabaseでアイテム更新時にWebhookを受け取る

Posted at

Hexabaseはエンタープライズ向けのBaaS(Backend as a Service)を提供しています。主な機能としてはデータベース、ファイルストレージ、認証、リアルタイム通信などを提供しています。

データベースに関連した機能として紹介したいのがWebhookです。作成時、更新時などに指定したURLに対してPOSTリクエストを行う機能になります。システム連携に使えるでしょう。

今回はそのWebhookの使い方を解説します。

開発者機能を有効にしてください

Webhookを使う場合には、Hexabaseの個人設定で 開発者向け機能 を有効にします。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/02e868fa-a23f-011c-50df-9d8f49eed241.png

Webhookを開く

データの詳細を開き、メニューの設定を開きます。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/86757de6-b797-33d0-24c3-57bd67079840.png

その中にWebhookという項目があります。そして、Webhookを追加するボタンを押して、Webhookを受け取るURLを指定します。

image.png

Webhookの仕組み

データを更新したりすると、指定したURLに対してPOSTリクエストが実行されます。GETではないので注意してください。

リクエストは Content-Type: application/json で、ボディは以下のようなデータになります。

{
	"data": {
		"u_id": "62bac0fd2c87b9c2bf23a313",
		"user_name": "goofmint",
		"email": "user@example.com",
		"updated_by": "goofmint",
		"updated_at": "2023/01/28 03:07:07",
		"created_by": "demo",
		"created_at": "2022/11/09 05:54:34",
		"p_id": "636affb311092f02affd3adc",
		"d_id": "636affd3a011d2ae2bbfe1af",
		"d_disp_id": "Memo",
		"i_id": "636b409aff578b5690a6ebf2",
		"title": "",
		"status_id": "636affd3f9600ccdf8842fa8",
		"statuses": {
			"636affd3f9600ccdf8842fa7": {
				"color": "",
				"name": "ステータス2",
				"order": 1,
				"s_id": "636affd3f9600ccdf8842fa7",
				"status_id": "Status2"
			},
			:
		},
		"history_id": "63d4915b79c48dc6622cea96",
		"trans_id": "63d4915b79c48dc6622cea8f",
		"fields_data": {
			"Title": {
				"f_id": "636affd3f9600ccdf8842fa3",
				"display_id": "Title",
				"value": "テストの編集",
				"uncommitted_value": "テストの編集",
				"field_name": "タイトル",
				"data_type": "text"
			},
			:
			"photo": {
				"f_id": "636b010511092f02affd3af4",
				"display_id": "photo",
				"value": [
					{
						"_id": "636b409bf9600ccdf8845c9f",
						"file_id": "636b409bf9600ccdf8845c9f",
						"display_order": 0,
						"d_id": "636affd3a011d2ae2bbfe1af",
						"datastore_id": "636affd3a011d2ae2bbfe1af",
						"w_id": "62bac0f0a65b33ec0c212a67",
						"p_id": "636affb311092f02affd3adc",
						"i_id": "636b409aff578b5690a6ebf2",
						"temporary": true,
						"deleted": false,
						"filename": "test (4).png",
						"filepath": "AfWf1291RQKA17kmSnkDpCxnlKrjyXGKbvcDOf3yLHXPdtF8cHT1B3VbdM920lO9NNLloQchh74d98fb5YaswULdGTfG5baGy1VVOvmzXvbFgKUboYmjymFlkyvzMGABRjbS4Jw0dFvQrsjmuu0xvK4Mq88KGXF9DteUEGDFhuJKPAm8wy5kd8oRscjAH5srZRxJ3j241IVOgCvOLBP0ztVgFeDx0Sm8qk12nU4ulhBskrUgZPdo9OJSKdOr7zQ",
						"item_id": "636b409aff578b5690a6ebf2",
						"contentType": "image/png",
						"selfLink": "linkerprodstorage/AfWf1291RQKA17kmSnkDpCxnlKrjyXGKbvcDOf3yLHXPdtF8cHT1B3VbdM920lO9NNLloQchh74d98fb5YaswULdGTfG5baGy1VVOvmzXvbFgKUboYmjymFlkyvzMGABRjbS4Jw0dFvQrsjmuu0xvK4Mq88KGXF9DteUEGDFhuJKPAm8wy5kd8oRscjAH5srZRxJ3j241IVOgCvOLBP0ztVgFeDx0Sm8qk12nU4ulhBskrUgZPdo9OJSKdOr7zQ",
						"mediaLink": "/storage/linkerprodstorage/AfWf1291RQKA17kmSnkDpCxnlKrjyXGKbvcDOf3yLHXPdtF8cHT1B3VbdM920lO9NNLloQchh74d98fb5YaswULdGTfG5baGy1VVOvmzXvbFgKUboYmjymFlkyvzMGABRjbS4Jw0dFvQrsjmuu0xvK4Mq88KGXF9DteUEGDFhuJKPAm8wy5kd8oRscjAH5srZRxJ3j241IVOgCvOLBP0ztVgFeDx0Sm8qk12nU4ulhBskrUgZPdo9OJSKdOr7zQ",
						"size": 2300,
						"field_id": "photo",
						"created_at": "2022-11-09T05:54:35.801Z",
						"name": "test (4).png",
						"timeCreated": "2022-11-09T05:54:35.801Z",
						"updated": "2022-11-09T05:54:35.799Z",
						"user_id": "6350e1788d7ca2807f7be102"
					},
					
				],
				"field_name": "写真",
				"data_type": "file"
			}
		},
		"field_changes": [
			{
				"f_id": "636affd3f9600ccdf8842fa3",
				"field_name": "タイトル",
				"field_datatype": "text",
				"old_val": null,
				"new_val": "テストの編集",
				"logged_at": "2023/01/28 03:07:07"
			}
		],
		"releated_databases": [],
		"status_actions": {
			"ステータス2ヘ進める": {
				"_id": "636affd3f9600ccdf8842fac",
				"a_id": "636affd3f9600ccdf8842fac",
				"access_keys": [
					"636affb3f9600ccdf8842f94",
					"636affb3f9600ccdf8842f96"
				],
				"created_at": "2022-11-09T01:18:11.441Z",
				"d_id": "636affd3a011d2ae2bbfe1af",
				"description": "",
				"display_id": "MoveToStatus2",
				"display_order": 0,
				"is_status_action": true,
				"name": "ステータス2ヘ進める",
				"operation": "2",
				"p_id": "636affb311092f02affd3adc",
				"set_status": "636affd3f9600ccdf8842fa7",
				"slack_channels": null,
				"status_id": "636affd3f9600ccdf8842fa8",
				"updated_at": "2022-11-09T01:18:11.441Z",
				"user_slack_channels": null,
				"w_id": "62bac0f0a65b33ec0c212a67"
			}
		},
		"db_actions": {
			"このデータを削除する": {
				"_id": "636affd3f9600ccdf8842fb1",
				"a_id": "636affd3f9600ccdf8842fb1",
				"access_keys": [
					"636affb3f9600ccdf8842f94",
					"636affb3f9600ccdf8842f96"
				],
				"created_at": "2022-11-09T01:18:11.59Z",
				"d_id": "636affd3a011d2ae2bbfe1af",
				"description": "",
				"display_id": "DeleteItem",
				"display_order": 0,
				"isOwnedBySystem": true,
				"is_status_action": false,
				"name": "このデータを削除する",
				"operation": "3",
				"p_id": "636affb311092f02affd3adc",
				"set_status": "",
				"slack_channels": null,
				"updated_at": "2022-11-09T01:18:11.59Z",
				"user_slack_channels": null,
				"w_id": "62bac0f0a65b33ec0c212a67"
			},
			"コピーして新規登録する": {
				:
			},
			:
		}
	},
	"env_vars": {
		:
	}
}

これらのデータを使って自社システムなどと連携できます。

まとめ

同様の機能としてアクションスクリプトがあります。こちらはコードをHexabaseサーバー上に保存して、サーバーレスで実行できる機能です。言語はNode.js限定になります。

アクションスクリプトとWebhookのどちらが良いかは業務要件によって異なるでしょう。アクションスクリプトはあまり長い処理には不向きなので、短時間で終われるものがお勧めです。

サーバーレスな業務システム開発を実現するために、Hexabaseをご利用ください。

株式会社 Hexabaseー法人向けクラウドシステム『Hexabase』ー

2
1
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
2
1