API INTEGRATION
配布されたAPIキーで入力ページを発行
チームAPIキーと入力内容のJSONを使って、共有できる入力ページを作成します。このガイドでは、確認項目をJSONに直接指定する基本の発行方法を紹介します。
- 01試用案内を受領
- 02APIキーを設定
- 03JSONを送信
- 04入力ページ作成
01 α用のクライアントID・APIキーを受け取る
現在はクローズドαテスト中です。登録・ログインの案内から利用方法を確認できますが、公開α環境ではアカウント登録は不要です。配布された1組を利用してください。
クライアントIDは管理・問い合わせ用です。APIはキーから所属チームを判別するため、クライアントIDを別のヘッダーに指定する必要はありません。
02 APIキーを接続元に設定
APIキーを接続元で保管し、Authorizationヘッダーに指定します。入力ページ用の8桁パスコードや、レコードのユニークキーとは別です。
Authorization: Bearer wi_YOUR_API_KEY
Content-Type: application/jsonAPIキーを公開ページのJavaScriptやJSON本文に含めないでください。α用キーの期限は配布案内を確認してください。
03 入力ページの内容をJSONで用意
下のJSONを request.json として保存します。これは架空の企業・製品を使った例です。日時は例示のため、requested_at は発行日時、expires_at は実際に使う将来の期限に置き換えてください。
{ "schema_version": "1.0", "source": { "system": "SampleSystem", "company_code": "SAMPLE", "company_name": "サンプル企業", "company_short_name": "サンプル" }, "request": { "idempotency_key": "45613ba6-5f17-4f23-9179-a01fb7421c95", "form_code": "product_inspection", "title": "製品検査の入力依頼", "requested_at": "2030-01-10T09:00:00+09:00", "expires_at": "2030-01-17T18:00:00+09:00" }, "recipient": {}, "work": { "worklist_id": 1, "worklist_code": "JOB-001", "model_id": 1, "model_code": "PRODUCT-A", "pdct_works_id": 1, "work_id": 1, "row": 1, "work_title": "寸法確認", "component_id": 1, "component_code": "PART-A" }, "serials": [ { "works_data_id": 1, "serial_id": 1, "base_serial_number": "SN-001" } ], "form": { "fields": [ { "key": "length_mm", "label": "長さ", "type": "number", "required": true, "unit": "mm", "min": 9.5, "max": 10.5 }, { "key": "remarks", "label": "備考", "type": "textarea", "required": false } ] }, "notifications": { "email": null, "mattermost": null, "mqtt": null }}| 情報 | 指定するもの |
|---|---|
| source / recipient | 接続元システム・依頼元・依頼先。発行元チームはAPIキーで特定され、依頼元の会社名・会社コードは登録情報で補正されます。α試用では recipient は {} にします。受注チームの指定は回答時にログインが必要になるため、今回の試用では使いません。 |
| request | タイトル・日時・期限・発行要求の識別キー。 |
| work / serials | 作業と対象。現行APIでは例にあるID項目も必須です。接続元で意味の一致する安定したIDを割り当て、別の対象へ使い回さないでください。 |
| form.fields | 入力項目・入力型・必須条件・範囲など。1〜100項目。 |
| notifications | 通知先。通知しない場合も、例のように3つのキーをnullで指定します。 |
対象は1〜1,000件で、同じ依頼内の works_data_id は重複させません。過去実績はInWorks内から参照するため、過去値のJSON送信は不要です。
新規発行では idempotency_key に新しいUUIDを設定します。同じ発行要求を通信エラー等で再送するときは、同じUUIDを使います。変更した内容で新しく発行する場合は別のUUIDが必要です。
04 JSONをAPIへ送信
POST /api/v1/requests に送信します。以下の接続先・APIキーを実際の値へ置き換え、request.json を保存したディレクトリで実行してください。このDocs画面からは送信しません。
# 接続先と、その環境で発行したチームAPIキーを設定します。
export INWORKS_BASE_URL='https://intelligence-works.pages.dev'
export INWORKS_API_KEY='wi_YOUR_API_KEY'
curl --request POST "$INWORKS_BASE_URL/api/v1/requests" \
--header "Authorization: Bearer $INWORKS_API_KEY" \
--header 'Content-Type: application/json' \
--data-binary @request.jsonローカル開発の接続先は http://localhost:8088、公開環境では利用環境のHTTPS URLを使います。上記のHTTPS URLが今回の公開α環境です。
05 発行結果を受け取り、ページを開く
成功すると、新規発行ではHTTP 201と次の形式のJSONが返ります。以下は説明用の値で、実際に使えるURL・パスコードではありません。
{ "external_request_id": "970b224a-91e9-4d55-97af-e264100ba85a", "process_record_id": "iw_pro_lwsiSpHpTVWXr-JkEAuoWg", "master": { "node_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "version_id": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" }, "public_url": "https://intelligence-works.pages.dev/request/EXAMPLE_TOKEN", "passcode": "12345678", "status": "active", "expires_at": "2030-01-17T18:00:00+09:00", "duplicate": false}public_url:生成された入力ページのURL。passcode:そのページを開くための8桁のパスコード。external_request_id:状態や結果の取得に使う依頼ID。接続元で保存します。master:発行時にひもづいたマスタと版の参照情報。duplicate:同じ企業・同じ冪等キーの再送ではtrueとなり、HTTP 200で既存の発行結果を返します。
実際に返されたURLを開き、パスコードを入力すると、JSONで定義した「長さ」「備考」の入力画面が表示されます。入力担当者へはURLとパスコードを共有してください。APIキーは共有しません。
入力ページの発行でメールによる依頼案内が自動送信されるわけではありません。URLの案内は発行元で行います。
06 結果JSONとユニークキーを取得
同じAPIキーで GET /api/v1/requests/{external_request_id}/result を呼び出します。結果には工程・シリアル・確認結果のキーが付与され、既存のvaluesと業務IDも維持されます。下はキーの対応だけを抜き出した説明用サンプルです。
{ "process_record_id": "iw_pro_lwsiSpHpTVWXr-JkEAuoWg", "serials": [ { "works_data_id": 1, "serial_record_id": "iw_pro_lwsiSpHpTVWXr-JkEAuoWg_001", "checks": [ { "field_key": "length_mm", "check_record_id": "iw_pro_lwsiSpHpTVWXr-JkEAuoWg_001_001" }, { "field_key": "remarks", "check_record_id": "iw_pro_lwsiSpHpTVWXr-JkEAuoWg_001_002" } ] } ]}うまく発行できない場合
| HTTP | 確認すること |
|---|---|
| 401 | 接続先とキーの環境、Bearerの指定、キーの期限・失効状態、企業の利用状態。 |
| 403 | 企業の利用状態や操作権限。 |
| 409 | 定義参照方式を使う場合の未同期など。応答のエラー内容を確認してください。 |
| 422 | 必須項目、型、重複した項目キー・対象ID、期限など。 |
| 429 | 月間発行上限など。企業管理画面の利用数を確認してください。 |
タイムアウトで発行結果が分からない場合は、同じ冪等キーで再送します。新しいUUIDで送り直すと、別の依頼として発行される可能性があります。