2026-05-15 20:11:18 +02:00
2026-05-15 20:07:54 +02:00
2026-05-15 20:07:54 +02:00
2026-05-15 20:07:54 +02:00
2026-05-15 19:56:08 +02:00
2026-05-15 20:11:18 +02:00

IMSAPI Workbench / IMSAPI 工作台

A browser-based IMSAPI REST workbench for building, testing, combining, and executing API calls with payload generation, key/value handling, login context support, and a JSON script editor.


Languages / Sprachen / Langues / 语言


Deutsch

Überblick

IMSAPI Workbench ist eine HTML/JavaScript-basierte Oberfläche zum Testen und Kombinieren von IMSAPI-REST-Aufrufen. Die Anwendung lädt API-Templates und Parameterdefinitionen aus JSON-Dateien, erzeugt daraus dynamische Eingabeformulare und ermöglicht das Ausführen einzelner APIs oder kompletter API-Ketten über einen JSON-Scripteditor.

Hauptfunktionen

  • Login gegen die IMSAPI-REST-Schnittstelle
  • Automatische Übernahme von sessionContext aus dem Login
  • Automatische Übernahme von stationNumber aus dem Login
  • Dynamische API-Liste mit Filter-/Suchfunktion
  • Automatische Formularerzeugung aus rest_api_templates.json und api_params.json
  • Auswahl von Keys, Filters, ResultKeys und UploadValues
  • Unterstützung mehrerer UploadValues-Datensätze über ein + im Modal
  • Korrekte Key/Value-Ausgabe für flache REST-Payloads
  • JSON-Scripteditor zum Kombinieren mehrerer API-Aufrufe
  • Serielle Ausführung mehrerer API-Steps
  • Automatischer Export von ResultKeys/ResultValues als Variablen
  • Wiederverwendung von Ergebniswerten in späteren API-Aufrufen
  • Mehrsprachige Oberfläche für Scripteditor-Hilfetexte und Beispiele
  • Sprach-Dropdown für Deutsch, Englisch, Französisch und Chinesisch

Projektstruktur

.
├── index.html
├── api_params.json
├── rest_api_templates.json
└── README.md

Voraussetzungen

  • Moderner Browser, z. B. Chrome, Edge oder Firefox
  • Zugriff auf einen IMSAPI-REST-Server
  • Webserver oder lokale Entwicklungsumgebung zum Ausliefern der HTML- und JSON-Dateien

Hinweis: Wegen Browser-Sicherheitsregeln sollten die Dateien nicht direkt per file:// geöffnet werden. Verwende besser einen lokalen Webserver.

Lokaler Start

Beispiel mit Python:

python -m http.server 8080

Danach im Browser öffnen:

http://localhost:8080/index.html

Login

Im linken Bereich werden Server, Port, Station, Client und Registrierungstyp eingetragen. Nach erfolgreichem Login wird der sessionContext gespeichert und automatisch in Payloads eingesetzt.

Beispiel sichtbarer Payload:

{
  "sessionContext": {
    "sessionId": 17314583823726,
    "persId": 0,
    "locale": "en_EN"
  },
  "stationNumber": "J816352",
  "stationSettingResultKeys": [
    "WORKORDER_NUMBER",
    "WORKSTEP_NUMBER"
  ]
}

Einzelne API ausführen

  1. API in der linken Liste auswählen.
  2. Parameter, Keys, Filter oder Values eingeben.
  3. JSON erzeugen klicken, um den Payload zu prüfen.
  4. API ausführen klicken, um den REST-Aufruf abzusetzen.

Scripteditor

Der Scripteditor erlaubt das Kombinieren mehrerer APIs zu einem zusammenhängenden Ablauf. Jeder Step enthält eine eindeutige id, den API-Namen und einen Payload.

Beispiel:

[
  {
    "id": "getStationSetting",
    "api": "stationGetStationSetting",
    "payload": {
      "stationSettingResultKeys": [
        "WORKORDER_NUMBER",
        "WORKSTEP_NUMBER"
      ]
    }
  },
  {
    "id": "nextApi",
    "api": "deineNaechsteApi",
    "payload": {
      "workOrderNumber": "{{vars.workorderNumber}}",
      "workStepNumber": "{{vars.workstepNumber}}"
    }
  }
]

Automatische Variablen aus ResultValues

Wenn ein API-Step z. B. folgende Keys anfordert:

"stationSettingResultKeys": [
  "WORKORDER_NUMBER",
  "WORKSTEP_NUMBER"
]

und folgendes Ergebnis liefert:

{
  "result": {
    "return_value": 0,
    "stationSettingResultValues": [
      "Demo1",
      "6"
    ]
  }
}

werden automatisch Variablen erzeugt:

{{vars.WORKORDER_NUMBER}}
{{vars.workorderNumber}}
{{vars.WORKSTEP_NUMBER}}
{{vars.workstepNumber}}
{{vars.getStationSetting.WORKORDER_NUMBER}}
{{vars.getStationSetting.workorderNumber}}

Manuelle Platzhalter

Folgende Platzhalter werden weiterhin unterstützt:

{{vars.name}}
{{login.stationNumber}}
{{row:stepId:resultValues:0:KEY}}
{{col:stepId:resultValues:KEY}}

Beispiel:

{
  "workOrderNumber": "{{vars.getStationSetting.workorderNumber}}"
}

Kombination von ResultValues zu UploadValues

Mit $rows können Ergebniszeilen aus einem vorherigen Step in UploadValues übernommen werden.

{
  "uploadValues": {
    "$rows": {
      "from": "getValues",
      "values": "resultValues",
      "columns": [
        "PARAMETER_NAME",
        "CONFIG_VALUE"
      ]
    }
  }
}

Mehrsprachigkeit

Die Sprache des Scripteditors kann über das Dropdown oben rechts umgestellt werden. Unterstützt werden:

  • Deutsch
  • English
  • Français
  • 中文

API-Namen, Payload-Felder und Keys werden nicht übersetzt, damit die REST-Aufrufe technisch korrekt bleiben.

Hinweise zur Entwicklung

  • rest_api_templates.json enthält URL, HTTP-Methode und Body-Templates.
  • api_params.json enthält Parameterinformationen, Optionen, Filter und Key-Definitionen.
  • Die Oberfläche erzeugt Payloads dynamisch aus beiden Dateien.
  • Pflichtfelder werden automatisch vorausgewählt, sofern sie in den Parametern entsprechend markiert sind.

Lizenz

Bitte ergänzen, falls benötigt.


English

Overview

IMSAPI Workbench is an HTML/JavaScript-based interface for testing and combining IMSAPI REST calls. The application loads API templates and parameter definitions from JSON files, generates dynamic input forms, and allows users to execute single APIs or complete API chains through a JSON script editor.

Main Features

  • Login against the IMSAPI REST interface
  • Automatic use of sessionContext from the login
  • Automatic use of stationNumber from the login
  • Dynamic API list with filter/search function
  • Automatic form generation from rest_api_templates.json and api_params.json
  • Selection of Keys, Filters, ResultKeys, and UploadValues
  • Support for multiple UploadValues records via a + button in the modal
  • Correct key/value output for flat REST payloads
  • JSON script editor for combining multiple API calls
  • Sequential execution of multiple API steps
  • Automatic export of ResultKeys/ResultValues as variables
  • Reuse of result values in later API calls
  • Multilingual script editor help texts and examples
  • Language dropdown for German, English, French, and Chinese

Project Structure

.
├── index.html
├── api_params.json
├── rest_api_templates.json
└── README.md

Requirements

  • Modern browser, such as Chrome, Edge, or Firefox
  • Access to an IMSAPI REST server
  • Web server or local development environment to serve the HTML and JSON files

Note: Due to browser security rules, the files should not be opened directly via file://. Use a local web server instead.

Local Start

Example with Python:

python -m http.server 8080

Then open in the browser:

http://localhost:8080/index.html

Login

Server, port, station, client, and registration type are entered in the left panel. After a successful login, the sessionContext is stored and automatically inserted into payloads.

Example visible payload:

{
  "sessionContext": {
    "sessionId": 17314583823726,
    "persId": 0,
    "locale": "en_EN"
  },
  "stationNumber": "J816352",
  "stationSettingResultKeys": [
    "WORKORDER_NUMBER",
    "WORKSTEP_NUMBER"
  ]
}

Executing a Single API

  1. Select an API from the list on the left.
  2. Enter parameters, keys, filters, or values.
  3. Click Generate JSON to check the payload.
  4. Click Execute API to send the REST call.

Script Editor

The script editor allows multiple APIs to be combined into one connected workflow. Each step contains a unique id, the API name, and a payload.

Example:

[
  {
    "id": "getStationSetting",
    "api": "stationGetStationSetting",
    "payload": {
      "stationSettingResultKeys": [
        "WORKORDER_NUMBER",
        "WORKSTEP_NUMBER"
      ]
    }
  },
  {
    "id": "nextApi",
    "api": "yourNextApi",
    "payload": {
      "workOrderNumber": "{{vars.workorderNumber}}",
      "workStepNumber": "{{vars.workstepNumber}}"
    }
  }
]

Automatic Variables from ResultValues

If an API step requests the following keys:

"stationSettingResultKeys": [
  "WORKORDER_NUMBER",
  "WORKSTEP_NUMBER"
]

and returns this result:

{
  "result": {
    "return_value": 0,
    "stationSettingResultValues": [
      "Demo1",
      "6"
    ]
  }
}

variables are created automatically:

{{vars.WORKORDER_NUMBER}}
{{vars.workorderNumber}}
{{vars.WORKSTEP_NUMBER}}
{{vars.workstepNumber}}
{{vars.getStationSetting.WORKORDER_NUMBER}}
{{vars.getStationSetting.workorderNumber}}

Manual Placeholders

The following placeholders are still supported:

{{vars.name}}
{{login.stationNumber}}
{{row:stepId:resultValues:0:KEY}}
{{col:stepId:resultValues:KEY}}

Example:

{
  "workOrderNumber": "{{vars.getStationSetting.workorderNumber}}"
}

Combining ResultValues into UploadValues

Using $rows, result rows from a previous step can be transferred into UploadValues.

{
  "uploadValues": {
    "$rows": {
      "from": "getValues",
      "values": "resultValues",
      "columns": [
        "PARAMETER_NAME",
        "CONFIG_VALUE"
      ]
    }
  }
}

Multilingual Support

The script editor language can be changed using the dropdown in the top-right corner. Supported languages are:

  • Deutsch
  • English
  • Français
  • 中文

API names, payload fields, and keys are not translated to keep REST calls technically correct.

Development Notes

  • rest_api_templates.json contains URLs, HTTP methods, and body templates.
  • api_params.json contains parameter information, options, filters, and key definitions.
  • The interface dynamically generates payloads from both files.
  • Required fields are automatically preselected if marked accordingly in the parameter definitions.

License

Please add one if required.


Français

Aperçu

IMSAPI Workbench est une interface HTML/JavaScript permettant de tester et de combiner des appels REST IMSAPI. L'application charge les modèles d'API et les définitions de paramètres depuis des fichiers JSON, génère des formulaires dynamiques et permet d'exécuter des API individuelles ou des chaînes complètes d'API via un éditeur de script JSON.

Fonctionnalités principales

  • Connexion à l'interface REST IMSAPI
  • Utilisation automatique de sessionContext depuis la connexion
  • Utilisation automatique de stationNumber depuis la connexion
  • Liste dynamique des API avec fonction de filtre/recherche
  • Génération automatique des formulaires à partir de rest_api_templates.json et api_params.json
  • Sélection de Keys, Filters, ResultKeys et UploadValues
  • Prise en charge de plusieurs enregistrements UploadValues via un bouton + dans la fenêtre modale
  • Sortie key/value correcte pour les payloads REST plats
  • Éditeur de script JSON pour combiner plusieurs appels API
  • Exécution séquentielle de plusieurs étapes API
  • Export automatique de ResultKeys/ResultValues sous forme de variables
  • Réutilisation des valeurs de résultat dans les appels API suivants
  • Textes d'aide et exemples multilingues dans l'éditeur de script
  • Menu déroulant de langue pour l'allemand, l'anglais, le français et le chinois

Structure du projet

.
├── index.html
├── api_params.json
├── rest_api_templates.json
└── README.md

Prérequis

  • Navigateur moderne, par exemple Chrome, Edge ou Firefox
  • Accès à un serveur REST IMSAPI
  • Serveur web ou environnement de développement local pour servir les fichiers HTML et JSON

Remarque : en raison des règles de sécurité des navigateurs, les fichiers ne doivent pas être ouverts directement avec file://. Utilisez plutôt un serveur web local.

Démarrage local

Exemple avec Python :

python -m http.server 8080

Puis ouvrir dans le navigateur :

http://localhost:8080/index.html

Connexion

Le serveur, le port, la station, le client et le type d'enregistrement sont saisis dans le panneau de gauche. Après une connexion réussie, le sessionContext est enregistré et automatiquement inséré dans les payloads.

Exemple de payload visible :

{
  "sessionContext": {
    "sessionId": 17314583823726,
    "persId": 0,
    "locale": "en_EN"
  },
  "stationNumber": "J816352",
  "stationSettingResultKeys": [
    "WORKORDER_NUMBER",
    "WORKSTEP_NUMBER"
  ]
}

Exécuter une API individuelle

  1. Sélectionner une API dans la liste à gauche.
  2. Saisir les paramètres, keys, filtres ou valeurs.
  3. Cliquer sur Générer JSON pour vérifier le payload.
  4. Cliquer sur Exécuter API pour envoyer l'appel REST.

Éditeur de script

L'éditeur de script permet de combiner plusieurs API dans un flux cohérent. Chaque étape contient un id unique, le nom de l'API et un payload.

Exemple :

[
  {
    "id": "getStationSetting",
    "api": "stationGetStationSetting",
    "payload": {
      "stationSettingResultKeys": [
        "WORKORDER_NUMBER",
        "WORKSTEP_NUMBER"
      ]
    }
  },
  {
    "id": "nextApi",
    "api": "votreApiSuivante",
    "payload": {
      "workOrderNumber": "{{vars.workorderNumber}}",
      "workStepNumber": "{{vars.workstepNumber}}"
    }
  }
]

Variables automatiques depuis ResultValues

Si une étape API demande les clés suivantes :

"stationSettingResultKeys": [
  "WORKORDER_NUMBER",
  "WORKSTEP_NUMBER"
]

et renvoie ce résultat :

{
  "result": {
    "return_value": 0,
    "stationSettingResultValues": [
      "Demo1",
      "6"
    ]
  }
}

les variables suivantes sont créées automatiquement :

{{vars.WORKORDER_NUMBER}}
{{vars.workorderNumber}}
{{vars.WORKSTEP_NUMBER}}
{{vars.workstepNumber}}
{{vars.getStationSetting.WORKORDER_NUMBER}}
{{vars.getStationSetting.workorderNumber}}

Placeholders manuels

Les placeholders suivants restent pris en charge :

{{vars.name}}
{{login.stationNumber}}
{{row:stepId:resultValues:0:KEY}}
{{col:stepId:resultValues:KEY}}

Exemple :

{
  "workOrderNumber": "{{vars.getStationSetting.workorderNumber}}"
}

Combiner ResultValues vers UploadValues

Avec $rows, les lignes de résultat d'une étape précédente peuvent être transférées dans UploadValues.

{
  "uploadValues": {
    "$rows": {
      "from": "getValues",
      "values": "resultValues",
      "columns": [
        "PARAMETER_NAME",
        "CONFIG_VALUE"
      ]
    }
  }
}

Multilingue

La langue de l'éditeur de script peut être modifiée via le menu déroulant en haut à droite. Les langues prises en charge sont :

  • Deutsch
  • English
  • Français
  • 中文

Les noms d'API, les champs de payload et les keys ne sont pas traduits afin de conserver la validité technique des appels REST.

Notes de développement

  • rest_api_templates.json contient les URL, méthodes HTTP et modèles de body.
  • api_params.json contient les informations de paramètres, options, filtres et définitions de keys.
  • L'interface génère dynamiquement les payloads à partir des deux fichiers.
  • Les champs obligatoires sont automatiquement présélectionnés s'ils sont marqués comme tels dans les définitions de paramètres.

Licence

À compléter si nécessaire.


中文

概述

IMSAPI Workbench 是一个基于 HTML/JavaScript 的界面,用于测试和组合 IMSAPI REST 调用。应用程序从 JSON 文件加载 API 模板和参数定义,动态生成输入表单,并允许用户通过 JSON 脚本编辑器执行单个 API 或完整的 API 调用链。

主要功能

  • 登录 IMSAPI REST 接口
  • 自动从登录信息中使用 sessionContext
  • 自动从登录信息中使用 stationNumber
  • 带过滤/搜索功能的动态 API 列表
  • 根据 rest_api_templates.jsonapi_params.json 自动生成表单
  • 支持选择 KeysFiltersResultKeysUploadValues
  • 在弹窗中通过 + 按钮支持多个 UploadValues 数据集
  • 为扁平 REST payload 生成正确的 key/value 输出
  • JSON 脚本编辑器,用于组合多个 API 调用
  • 按顺序执行多个 API 步骤
  • 自动将 ResultKeys/ResultValues 导出为变量
  • 在后续 API 调用中复用结果值
  • 脚本编辑器支持多语言帮助文本和示例
  • 支持德语、英语、法语和中文的语言下拉菜单

项目结构

.
├── index.html
├── api_params.json
├── rest_api_templates.json
└── README.md

运行要求

  • 现代浏览器,例如 Chrome、Edge 或 Firefox
  • 可访问 IMSAPI REST 服务器
  • 用于提供 HTML 和 JSON 文件的 Web 服务器或本地开发环境

注意:由于浏览器安全限制,不建议直接通过 file:// 打开文件。请使用本地 Web 服务器。

本地启动

使用 Python 示例:

python -m http.server 8080

然后在浏览器中打开:

http://localhost:8080/index.html

登录

在左侧区域输入服务器、端口、工位、客户端和注册类型。登录成功后,sessionContext 会被保存,并自动插入到 payload 中。

可见 payload 示例:

{
  "sessionContext": {
    "sessionId": 17314583823726,
    "persId": 0,
    "locale": "en_EN"
  },
  "stationNumber": "J816352",
  "stationSettingResultKeys": [
    "WORKORDER_NUMBER",
    "WORKSTEP_NUMBER"
  ]
}

执行单个 API

  1. 从左侧列表选择一个 API。
  2. 输入参数、keys、过滤器或 values。
  3. 点击 生成 JSON 检查 payload。
  4. 点击 执行 API 发送 REST 调用。

脚本编辑器

脚本编辑器允许将多个 API 组合成一个连续流程。每个步骤包含唯一的 id、API 名称和 payload。

示例:

[
  {
    "id": "getStationSetting",
    "api": "stationGetStationSetting",
    "payload": {
      "stationSettingResultKeys": [
        "WORKORDER_NUMBER",
        "WORKSTEP_NUMBER"
      ]
    }
  },
  {
    "id": "nextApi",
    "api": "yourNextApi",
    "payload": {
      "workOrderNumber": "{{vars.workorderNumber}}",
      "workStepNumber": "{{vars.workstepNumber}}"
    }
  }
]

从 ResultValues 自动生成变量

如果某个 API 步骤请求以下 keys

"stationSettingResultKeys": [
  "WORKORDER_NUMBER",
  "WORKSTEP_NUMBER"
]

并返回以下结果:

{
  "result": {
    "return_value": 0,
    "stationSettingResultValues": [
      "Demo1",
      "6"
    ]
  }
}

系统会自动创建以下变量:

{{vars.WORKORDER_NUMBER}}
{{vars.workorderNumber}}
{{vars.WORKSTEP_NUMBER}}
{{vars.workstepNumber}}
{{vars.getStationSetting.WORKORDER_NUMBER}}
{{vars.getStationSetting.workorderNumber}}

手动占位符

以下占位符仍然受支持:

{{vars.name}}
{{login.stationNumber}}
{{row:stepId:resultValues:0:KEY}}
{{col:stepId:resultValues:KEY}}

示例:

{
  "workOrderNumber": "{{vars.getStationSetting.workorderNumber}}"
}

将 ResultValues 组合为 UploadValues

使用 $rows 可以把前一个步骤的结果行转换为 UploadValues。

{
  "uploadValues": {
    "$rows": {
      "from": "getValues",
      "values": "resultValues",
      "columns": [
        "PARAMETER_NAME",
        "CONFIG_VALUE"
      ]
    }
  }
}

多语言支持

脚本编辑器的语言可以通过右上角下拉菜单切换。支持语言包括:

  • Deutsch
  • English
  • Français
  • 中文

API 名称、payload 字段和 keys 不会被翻译,以确保 REST 调用在技术上保持正确。

开发说明

  • rest_api_templates.json 包含 URL、HTTP 方法和 body 模板。
  • api_params.json 包含参数信息、选项、过滤器和 key 定义。
  • 界面会根据这两个文件动态生成 payload。
  • 如果参数定义中标记了必填字段,界面会自动预选这些字段。

许可证

如有需要,请在此补充。

Description
REST Modul for IMSAPI
Readme CC-BY-4.0 134 KiB
Languages
HTML 100%