サーバーAPIリファレンス (v1.5)
GIIPプラットフォームで管理するサーバー資産の情報を照会するためのAPI詳細仕様です。
📋 概要
サーバーAPIを活用すると、インベントリに登録されたサーバーの物理的・論理的状態を確認できます。
🔐 認証方式(実装ベース、2026-08-20 giip #1277 実測)
実際に動作が確認できているのは、下記の LsvrDetail(giipApiSk2 汎用SPラッパー経由) です。このラッパーは HTTPヘッダーではなく、POST本文のフィールドのみで認証します。
- エンドポイント:
POST https://giipfaw.azurewebsites.net/api/giipApiSk2 - Content-Type:
application/x-www-form-urlencoded - フィールド:
text:[コマンド名] [パラメータ名...]token:[Your_SK]— SKは必ずこのフィールドで渡す(textやjsondataにSKを入れない)jsondata: パラメータ値(コマンドごとに形式が異なる — 下記「2. LsvrDetail」参照)
- ⚠️
giipfaw/giipApiSk2/run.ps1を直接確認した結果(2026-08-20)、このエンドポイントは HTTPヘッダーを一切パースしません。x-giip-akのようなヘッダーを送っても無視され、Azure Function自体もauthLevel: anonymousのためFunction Key(?code=)も不要です。認証は上記tokenフィールドの値のみで行われます。
⚠️ 旧記載(api.giip.io / x-giip-ak)について
以前この文書に記載されていた https://api.giip.io/v3 ホストと x-giip-ak ヘッダーは、コードベース全体(giipfaw Azure Functions、giipv3 ソース)を検索した結果、実装のどこにも存在しないことを確認しました(0件)。同じ例文が他の複数のAPIガイド文書にもコピーされていたため、テンプレートのプレースホルダーだった可能性が高いです。実運用では使用しないでください。 上記「認証方式」の実装済みエンドポイントを使用してください。
🔍 エンドポイント
サーバー詳細情報の単件取得(LsvrDetail)— 実測検証済み(giip #1277)
- コマンド:
text=LsvrDetail - 説明: LSSN(サーバー内部通し番号)1件分の詳細情報を返します。内部的に
pApiLSVRDetailbySk(@sk, @lssn bigint, @jsondata=NULL)→pLSvrDescOptbyATを呼び出します。 - リクエスト例:
(POST https://giipfaw.azurewebsites.net/api/giipApiSk2 Content-Type: application/x-www-form-urlencoded text=LsvrDetail&token={SK}&jsondata=7128971289は照会対象サーバーのLSSN) - レスポンス例(lssn=71289):
{ "data": [ { "LSsn": 71289, "LSHostname": "shinsema0104", "CSn": 70418, "CGCode": "smtodr-group", "lsRegdt": "2026-...", "LSLastHeartbeat": null } ] } - 🚨
jsondataは生の数値文字列のみ(オブジェクトで包むと失敗):- ✅ 成功:
jsondata=71289 - ❌ 失敗:
jsondata={"lssn":71289}、{"id":71289}、{"isn":71289}など — どのキーで包んでもError converting data type nvarchar to bigintエラーになります。 - 原因:
textがLsvrDetailという1語のみ(パラメータ名が続かない)のため、run.ps1はこの呼び出しを「パラメータ名なしの単一コマンド」経路で処理します。この経路ではjsondataから個別キーを取り出す代わりに、jsondata文字列全体をそのままエスケープしてSPの第2引数(@lssn bigint)に文字列リテラルとして追加します(giipApiSk2の自動jsondata付与ロジック、run.ps1内コメントISN 161)。そのリテラルが71289のように数値のみであればSQL Serverがnvarchar→bigintの暗黙変換に成功しますが、{"lssn":71289}のように波括弧が混じると変換できずエラーになります。
- ✅ 成功:
🛠️ 活用例(Shellスクリプト、実測動作確認済み)
# LSSN 71289 のサーバー詳細を取得
curl -X POST "https://giipfaw.azurewebsites.net/api/giipApiSk2" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "text=LsvrDetail" \
--data-urlencode "token=YOUR_SK" \
--data-urlencode "jsondata=71289"
🛡️ Sk3(高性能ロギング)の活用
新規サーバーの登録や詳細情報の変更など、インフラ資産管理の核心的な作業において、作業の整合性確保と詳細な監視ログ(Audit Log)のために giipApiSk3 エンドポイントを推奨します。
- エンドポイント:
https://giipfaw.azurewebsites.net/api/giipApiSk3 - 利点: サーバー登録失敗時に呼び出し元の詳細な環境情報(IP, UA)と StackTrace を即座に記録し、エージェント連動の問題や設定エラーを迅速に分析できます。
- 活用チップ:
textコマンドとjsondataのパラメータ置换機能を活用して、サーバーの用途や複雑な設定値を損失なく安定してプラットフォームに反映させてください。
トラブルシューティング
| 症状 | 原因 | 解決 |
|---|---|---|
LsvrDetail 照会で Error converting data type nvarchar to bigint エラー | jsondataを{"lssn":71289}のようにオブジェクトで包んでいる — text=LsvrDetailにはパラメータ名がないため、jsondata全体が文字列のまま@lssn bigint引数に代入される | jsondataにLSSNの生の数値のみを渡す(例: jsondata=71289)。オブジェクトで包まない |
LsvrDetail 照会で認証が拒否される | POST本文のtokenフィールドの欠落・誤り、または無効化(再発行/ローテーション)されたSKの使用。x-giip-ak等のヘッダーはこのエンドポイントで一切使用されないため、ヘッダーをいくら設定しても無効です。 | POST本文のtokenフィールドに有効な(現在発行済みの)SKを含めているか確認します。 |
LsvrDetail 照会結果が空 | 存在しないLSSNを使用 | 有効なLSSNで再照会します |
🚫 動作しないコマンド(giip #1281)
以下のコマンドは giipApiSk2 ディスパッチャに対応する SP が存在しないため動作しません。UI を利用してください。
| コマンド | 原因 | 代替手段 |
|---|---|---|
LSVRList <CSN> | pApiLSVRListbySk SP が giipdb に存在しない | サーバーリストページ を利用してください |
LSvrPut '<lsUsage>', <CSN> | SK ベースの pApiLSvrPutbySk SP が存在しない(AK ベースの pApiLSvrPutbyAK のみ存在、giipApiSk2 から呼び出し不可) | サーバーリストページ を利用してください |
バージョン: 1.5
最終更新日: 2026-08-20
ソースファイル: giipv3/public/help/api-server.ja.md
v1.5 変更履歴(2026-08-20, giip #1281):
LSVRList・LSvrPutを API 詳細から削除し、動作しないコマンド表で UI 代替手段を明記。 v1.4 変更履歴(2026-08-20, giip #1277): 外部ユーザー(smartorder-works, csn 70418)の実測報告により文書と実装の不一致を発見し修正。 ①LsvrDetail(単一サーバー詳細取得)エンドポイントを新規追加 — 従来この文書には一切記載がなかった(報告の核心的な指摘事項)。 ② 認証方式を訂正: 従来のhttps://api.giip.io/v3ホスト +x-giip-akヘッダーの記載は、コードベース全体検索の結果、実装のどこにも存在しないことを確認(0件)。実際のホスト・認証方式(POST /api/giipApiSk2、Content-Type: application/x-www-form-urlencoded、token/text/jsondataフィールド、ヘッダー不使用)に置き換え。 ③jsondataにオブジェクトではなく生の数値のみが許可されるLsvrDetail固有のルールと、その原因(run.ps1の単一パラメータケース + ISN 161 自動jsondata付与ロジック)を実測に基づいて説明。 ④/server/list・/server/heartbeat・/server/commandは対応する実装を今回の調査で確認できず「未検証・レガシー記載」として明記(本Issueの範囲外のためライブテストは未実施)— 後続確認は giip #1281 で追跡。
関連ドキュメント: