メインコンテンツまでスキップ

データベース操作

KREISEL のデータベースを API 経由で操作する方法について説明します。


データベースの一覧と会員数を取得する

アカウントがアクセス可能なデータベースの一覧と、それぞれの会員数を取得します。

get_member_tables

API仕様

項目内容
エンドポイント/api/v1/get_member_tables
HTTPメソッドPOST
リクエストボディなし(空のJSONオブジェクト {} を送信します)
必要権限なし

レスポンス

成功すると、データベース情報の配列が返されます。

{
"member_tables": [
{
"id": 1,
"title": "データベース名称1",
"nums": 50
},
{
"id": 2,
"title": "データベース名称2",
"nums": 350
}
]
}
備考
  • 配列は KREISEL の管理画面と同じ順番でソートされています。
  • ログインしているアカウントがアクセス権を持たないデータベースは、結果に含まれません。

サンプルコード (PHP)

<?php
$apiUrl = 'https://krs.bz/<環境ID>/api/v1/get_member_tables';
$apiToken = 'YOUR_API_TOKEN'; // あなたのAPIトークンに置き換えてください

$headers = [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{}'); // リクエストボディは空

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
$result = json_decode($response, true);
if (isset($result['member_tables'])) {
foreach ($result['member_tables'] as $db) {
echo "ID: {$db['id']}, 名称: {$db['title']}, 会員数: {$db['nums']}", PHP_EOL;
}
}
} else {
echo "APIリクエストに失敗しました。 HTTPステータスコード: ", $httpCode, PHP_EOL;
echo $response;
}

実行結果

ID: 1, 名称: データベース名称1, 会員数: 50
ID: 2, 名称: データベース名称2, 会員数: 350

データベースの項目一覧を取得する

特定のデータベースに存在する項目の一覧と、その詳細情報を取得します。

get_member_table_elements

API仕様

項目内容
エンドポイント/api/v1/get_member_table_elements
HTTPメソッドPOST
必要権限全てのアクセス権 または 操作のみ

リクエスト

{
"member_table_id": 2
}
キー必須説明
member_table_idInteger情報を取得したいデータベースのID。

レスポンス

成功すると、データベース項目情報の配列が返されます。

{
"member_table_elements": [
{
"id": 4,
"name": "メールアドレス",
"type": "email",
"required": false,
"unique": false,
"system": false
},
{
"id": 5,
"name": "パスワード",
"type": "password",
"required": true,
"unique": false,
"system": false
},
{
"id": 1,
"name": "登録日時",
"type": "timestamp",
"required": false,
"unique": false,
"system": true
}
]
}

レスポンスのキー詳細

キーデータ型説明
idIntegerデータベース項目ID。各項目にユニークな数値が割り振られています。
nameString項目名称。KREISELの管理画面から設定できます。
typeString項目のタイプ。詳細は後述の「項目のタイプ一覧」を参照してください。
requiredBoolean必須項目かどうかを表します。
uniqueBoolean重複キーとして設定されているかどうかを表します。
systemBooleanシステム項目(登録日時、更新日時など自動で定義される項目)かどうかを表します。

サンプルコード (PHP)

<?php
$apiUrl = 'https://krs.bz/<環境ID>/api/v1/get_member_table_elements';
$apiToken = 'YOUR_API_TOKEN';
$databaseId = 2; // 情報を取得したいデータベースID

$headers = [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
];

$data = json_encode(['member_table_id' => $databaseId]);

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
$result = json_decode($response, true);
if (isset($result['member_table_elements'])) {
foreach ($result['member_table_elements'] as $element) {
echo "項目ID: {$element['id']}\t項目名: {$element['name']}\tタイプ: {$element['type']}", PHP_EOL;
}
}
} else {
echo "APIリクエストに失敗しました。 HTTPステータスコード: ", $httpCode, PHP_EOL;
$error = json_decode($response, true);
echo "エラーコード: {$error['error_code']}, 詳細: {$error['error_desc']}", PHP_EOL;
}

項目のタイプ一覧

get_member_table_elementsで返されるtypeキーの値と、対応する項目タイプは以下の通りです。

type キーの値項目タイプ
textテキスト
textareaテキストエリア
integer整数
emailメールアドレス
urlURL
select単一選択
select_multiple複数選択
date日付
prefecture都道府県
zip郵便番号
telephone電話番号
sex性別
marriage未既婚
yesnoはい/いいえ
checkbox選択
passwordパスワード(平文)
encrypted_textテキスト(暗号化)
hashed_passwordパスワード(ハッシュ)
autogen自動採番
timestampタイムスタンプ(システム日時)
authパスワード(認証用)
備考

timestamp は「登録日時」「更新日時」「一括処理日時」「アップロード日時」などのシステム項目に該当します。


選択項目の選択肢一覧を取得する

単一選択項目や複数選択項目などの、選択肢の一覧を取得します。

get_member_table_element_config

API仕様

項目内容
エンドポイント/api/v1/get_member_table_element_config
HTTPメソッドPOST
必要権限全てのアクセス権 または 操作のみ

リクエスト

{
"element_id": 270
}
キー必須説明
element_idInteger選択肢を取得したいデータベース項目のID。

レスポンス

成功すると、項目の詳細設定情報が返されます。選択肢は option.options の中に連想配列として格納されています。

{
"option": {
"options": {
"1": "選択肢_1",
"2": "選択肢_2",
"3": "選択肢_3",
"4": "選択肢_4",
"5": "選択肢_5"
}
}
}
備考
  • options は、キーが選択肢 ID、値が選択肢のラベルとなっています。
  • 選択肢を持たない項目(テキスト項目など)に対してこの API を呼び出した場合、レスポンスのoptionオブジェクトにoptionsキーは含まれません。

サンプルコード (PHP)

<?php
$apiUrl = 'https://krs.bz/<環境ID>/api/v1/get_member_table_element_config';
$apiToken = 'YOUR_API_TOKEN';
$elementId = 270; // 選択肢を取得したい項目ID

$headers = [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
];

$data = json_encode(['element_id' => $elementId]);

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
$result = json_decode($response, true);
if (isset($result['option']['options'])) {
foreach ($result['option']['options'] as $id => $label) {
echo "選択肢ID: {$id}\t選択肢名: {$label}", PHP_EOL;
}
} else {
echo "指定した項目には選択肢データがありません。", PHP_EOL;
}
} else {
echo "APIリクエストに失敗しました。 HTTPステータスコード: ", $httpCode, PHP_EOL;
$error = json_decode($response, true);
echo "エラーコード: {$error['error_code']}, 詳細: {$error['error_desc']}", PHP_EOL;
}

実行結果例

選択肢ID: 1	選択肢名: 選択肢_1
選択肢ID: 2 選択肢名: 選択肢_2
選択肢ID: 3 選択肢名: 選択肢_3
選択肢ID: 4 選択肢名: 選択肢_4
選択肢ID: 5 選択肢名: 選択肢_5