ブロック結果

分析結果の取得

完了したブロック実行の実行履歴と結果にアクセスします。フィルター、計算、アラートから処理された結果を取得します。

ブロック結果の取得

GET /api/{tenantId}/{projectId}/block/{blockId}/results

特定のブロックの実行履歴メタデータを取得します。結果には実行日時とステータス情報が含まれます。

パスパラメーター

パラメーター タイプ 必須 説明
tenantId GUID はい テナント識別子
projectId GUID はい プロジェクト識別子
blockId GUID はい ブロック識別子

レスポンス (200 OK)

{
  "blockId": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Block execution history not yet implemented",
  "executions": []
}

レスポンスコード

  • 200 OK - リクエスト成功
  • 401 Unauthorized - 認証無効または権限不足
  • 404 Not Found - ブロックが見つからない、またはアクセスなし
  • 500 Internal Server Error - サーバーエラー発生

ブロック出力データの取得

GET /api/{tenantId}/{projectId}/block/{blockId}/output-data

ブロックによって生成された変換済みデータセットを取得します。

重要: このエンドポイントは、実際の出力データ取得にはExecutionControllerワークフローを使用するよう案内を返します。ブロック出力データはインメモリのプロジェクトキャッシュ経由でのみ利用可能です。

パスパラメーター

パラメーター タイプ 必須 説明
tenantId GUID はい テナント識別子
projectId GUID はい プロジェクト識別子
blockId GUID はい ブロック識別子

レスポンス (501 Not Implemented)

{
  "Error": "Block output data retrieval not implemented via database API",
  "BlockId": "550e8400-e29b-41d4-a716-446655440000",
  "Message": "To retrieve block output data, use the ExecutionController workflow: 1. Load project into cache via ProjectController.LoadProject, 2. Execute notebook via ExecutionController.ExecuteNotebook, 3. Retrieve results via ExecutionController.GetNotebookResults",
  "Recommendation": "GET /api/{tenantId}/{projectId}/execution/notebook/{notebookId}/results"
}

ブロック出力データ取得の推奨ワークフロー

実際のブロック出力データを取得するには、Execution APIを使用した以下のワークフローに従ってください。

  1. プロジェクトをキャッシュにロード

    GET /api/{tenantId}/{projectId}/project/{projectId}/load
    
  2. ノートブックを実行

    POST /api/{tenantId}/{projectId}/execution/notebook/{notebookId}
    
  3. ノートブックの結果を取得

    GET /api/{tenantId}/{projectId}/execution/notebook/{notebookId}/results
    

完全なドキュメントはExecution APIを参照してください。

実装例

cURL

# ブロック結果のメタデータ取得
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/block/550e8400-e29b-41d4-a716-446655440000/results" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

# 出力データ取得の試行(案内を返す)
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/block/550e8400-e29b-41d4-a716-446655440000/output-data" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

JavaScript/Node.js

const TENANT_ID = '12345678-1234-1234-1234-123456789012';
const PROJECT_ID = '87654321-4321-4321-4321-210987654321';
const BASE_URL = 'https://your-mindzie-instance.com';

class BlockResultsClient {
  constructor(token) {
    this.headers = {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    };
  }

  async getBlockResults(blockId) {
    const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/block/${blockId}/results`;
    const response = await fetch(url, { headers: this.headers });

    if (response.ok) {
      return await response.json();
    }

    throw new Error(`Failed to get results: ${response.status}`);
  }

  async getBlockOutputData(blockId) {
    const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/block/${blockId}/output-data`;
    const response = await fetch(url, { headers: this.headers });

    // 注意: このエンドポイントはガイダンス付きで501を返します
    return await response.json();
  }
}

// 使用例
const client = new BlockResultsClient('your-auth-token');

// 結果のメタデータを取得
const results = await client.getBlockResults('block-guid');
console.log(`Block: ${results.blockId}`);
console.log(`Executions: ${results.executions.length}`);

// 出力データのガイダンスを確認
const outputInfo = await client.getBlockOutputData('block-guid');
console.log(`Recommendation: ${outputInfo.Recommendation}`);

Python

import requests

TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
BASE_URL = 'https://your-mindzie-instance.com'

class BlockResultsClient:
    def __init__(self, token):
        self.headers = {
            'Authorization': f'Bearer {token}',
            'Content-Type': 'application/json'
        }

    def get_block_results(self, block_id):
        """ブロック実行結果のメタデータを取得します。"""
        url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/block/{block_id}/results'
        response = requests.get(url, headers=self.headers)

        if response.ok:
            return response.json()
        else:
            raise Exception(f'Failed to get results: {response.status_code}')

    def get_block_output_data(self, block_id):
        """ブロック出力データのガイダンスを取得します。"""
        url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/block/{block_id}/output-data'
        response = requests.get(url, headers=self.headers)
        return response.json()

# 使用例
client = BlockResultsClient('your-auth-token')

# 結果を取得
results = client.get_block_results('block-guid')
print(f"Block: {results['blockId']}")

# 出力データのガイダンスを取得
output_info = client.get_block_output_data('block-guid')
print(f"Recommendation: {output_info.get('Recommendation', 'N/A')}")

C#

using System;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

public class BlockResultsClient
{
    private readonly HttpClient _httpClient;
    private readonly string _baseUrl;
    private readonly Guid _tenantId;
    private readonly Guid _projectId;

    public BlockResultsClient(string baseUrl, Guid tenantId, Guid projectId, string accessToken)
    {
        _baseUrl = baseUrl;
        _tenantId = tenantId;
        _projectId = projectId;
        _httpClient = new HttpClient();
        _httpClient.DefaultRequestHeaders.Authorization =
            new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
    }

    public async Task<JsonDocument> GetBlockResultsAsync(Guid blockId)
    {
        var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/block/{blockId}/results";
        var response = await _httpClient.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            var json = await response.Content.ReadAsStringAsync();
            return JsonDocument.Parse(json);
        }

        throw new Exception($"Failed to get results: {response.StatusCode}");
    }

    public async Task<JsonDocument> GetBlockOutputDataAsync(Guid blockId)
    {
        var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/block/{blockId}/output-data";
        var response = await _httpClient.GetAsync(url);

        // ガイダンス付きで501を返します
        var json = await response.Content.ReadAsStringAsync();
        return JsonDocument.Parse(json);
    }
}

重要な注意事項

  • 結果エンドポイント: 現状は実行履歴メタデータを返します。完全な実行履歴取得は開発中です。
  • 出力データ: ブロック出力データはインメモリのプロジェクトキャッシュからのみ利用可能です。実際のデータ取得にはExecutionControllerワークフローを使用してください。
  • ベストプラクティス: 完全なブロック出力のためには、プロジェクトをロードし、ノートブックを実行し、Execution API経由で結果を取得してください。