---
generated_at: 2026-02-23 12:00:00
metrics:
  claims_total: 45
  claims_with_evidence: 42
  claims_without_evidence: 3
confidence_derived: 0.93
---

# 根拠レポート：API設計書

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：42 / 45、根拠なし：3
- 優先レビュー（高）
  1. **レスポンスボディの詳細フィールド**：サーバー側の実装に依存するため一部推測
  2. **エラーレスポンスの詳細形式**：アプリ側ではステータスコードのみ処理
  3. **一部のクエリパラメータ**：サーバー側ドキュメント参照が望ましい

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/api.dart` - InvenTreeAPIクラス、認証・HTTPメソッド実装
- E-02: `lib/inventree/model.dart` - InvenTreeModelベースクラス、CRUD操作
- E-03: `lib/inventree/part.dart` - InvenTreePart、InvenTreePartCategory、InvenTreePartTestTemplateクラス
- E-04: `lib/inventree/stock.dart` - InvenTreeStockItem、InvenTreeStockLocation、InvenTreeStockItemTestResultクラス
- E-05: `lib/inventree/company.dart` - InvenTreeCompany、InvenTreeSupplierPart、InvenTreeManufacturerPartクラス
- E-06: `lib/inventree/purchase_order.dart` - InvenTreePurchaseOrder、InvenTreePOLineItemクラス
- E-07: `lib/inventree/sales_order.dart` - InvenTreeSalesOrder、InvenTreeSOLineItem、InvenTreeSalesOrderShipmentクラス
- E-08: `lib/inventree/notification.dart` - InvenTreeNotificationクラス
- E-09: `lib/inventree/attachment.dart` - InvenTreeAttachmentクラス
- E-10: `lib/inventree/orders.dart` - InvenTreeOrder、InvenTreeOrderLineベースクラス
- E-11: `lib/barcode/barcode.dart` - BarcodeScanHandler、バーコード処理
- E-12: `lib/barcode/handler.dart` - BarcodeHandlerベースクラス
- E-13: `lib/labels.dart` - ラベル印刷処理
- E-14: `lib/api_form.dart` - APIFormField、フォーム処理

## 3) Claims と根拠の対応（レビューの主戦場）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ベースURLは `{server_address}/api/` | E-01 (makeApiUrl, apiUrl) | ○ |
| C-02 | Token認証方式を使用 | E-01 (_URL_TOKEN, _authorizationHeader) | ○ |
| C-03 | Authorization ヘッダーは `Token {token}` 形式 | E-01 (_authorizationHeader) | ○ |
| C-04 | Content-Type は application/json | E-01 (defaultHeaders) | ○ |
| C-05 | Accept-Language ヘッダーでロケール送信 | E-01 (defaultHeaders, currentLocale) | ○ |
| C-06 | 最小APIバージョンは100 | E-01 (_minApiVersion = 100) | ○ |
| C-07 | ページネーションはlimit/offset形式 | E-02 (listPaginated) | ○ |
| C-08 | ページネーション結果はcount/results形式 | E-02 (listPaginated, resultsList) | ○ |
| C-09 | /api/user/token/ でトークン取得 | E-01 (_URL_TOKEN, fetchToken) | ○ |
| C-10 | /api/user/me/ でユーザー情報取得 | E-01 (_URL_ME, _checkAuth) | ○ |
| C-11 | /api/user/roles/ でロール取得 | E-01 (_URL_ROLES, _fetchRoles) | ○ |
| C-12 | Part URLは part/ | E-03 (InvenTreePart.URL) | ○ |
| C-13 | PartCategory URLは part/category/ | E-03 (InvenTreePartCategory.URL) | ○ |
| C-14 | PartTestTemplate URLは part/test-template/ | E-03 (InvenTreePartTestTemplate.URL) | ○ |
| C-15 | Part pricing エンドポイントは /api/part/{id}/pricing/ | E-03 (getPricing) | ○ |
| C-16 | Part requirements エンドポイントは /api/part/{id}/requirements/ | E-03 (getRequirements) | ○ |
| C-17 | Stock URLは stock/ | E-04 (InvenTreeStockItem.URL) | ○ |
| C-18 | StockLocation URLは stock/location/ | E-04 (InvenTreeStockLocation.URL) | ○ |
| C-19 | Stock transfer URLは stock/transfer/ | E-04 (transferStockUrl) | ○ |
| C-20 | Stock count URLは stock/count/ | E-04 (countStockUrl) | ○ |
| C-21 | Stock add URLは stock/add/ | E-04 (addStockUrl) | ○ |
| C-22 | Stock remove URLは stock/remove/ | E-04 (removeStockUrl) | ○ |
| C-23 | Stock test URLは stock/test/ | E-04 (InvenTreeStockItemTestResult.URL) | ○ |
| C-24 | Stock track URLは stock/track/ | E-04 (InvenTreeStockItemHistory.URL) | ○ |
| C-25 | Company URLは company/ | E-05 (InvenTreeCompany.URL) | ○ |
| C-26 | SupplierPart URLは company/part/ | E-05 (InvenTreeSupplierPart.URL) | ○ |
| C-27 | ManufacturerPart URLは company/part/manufacturer/ | E-05 (InvenTreeManufacturerPart.URL) | ○ |
| C-28 | PurchaseOrder URLは order/po/ | E-06 (InvenTreePurchaseOrder.URL) | ○ |
| C-29 | PO issue エンドポイントは {url}issue/ | E-06 (issueOrder) | ○ |
| C-30 | PO cancel エンドポイントは {url}cancel/ | E-06 (cancelOrder) | ○ |
| C-31 | PO receive エンドポイントは {url}receive/ | E-06 (receive_url) | ○ |
| C-32 | POLineItem URLは order/po-line/ | E-06 (InvenTreePOLineItem.URL) | ○ |
| C-33 | POExtraLine URLは order/po-extra-line/ | E-06 (InvenTreePOExtraLineItem.URL) | ○ |
| C-34 | SalesOrder URLは order/so/ | E-07 (InvenTreeSalesOrder.URL) | ○ |
| C-35 | SO allocate エンドポイントは {url}allocate/ | E-07 (allocate_url) | ○ |
| C-36 | SOLineItem URLは order/so-line/ | E-07 (InvenTreeSOLineItem.URL) | ○ |
| C-37 | SOExtraLine URLは order/so-extra-line/ | E-07 (InvenTreeSOExtraLineItem.URL) | ○ |
| C-38 | SOShipment URLは /order/so/shipment/ | E-07 (InvenTreeSalesOrderShipment.URL) | ○ |
| C-39 | SOAllocation URLは /order/so-allocation/ | E-07 (InvenTreeSalesOrderAllocation.URL) | ○ |
| C-40 | Barcode scan URLは barcode/ | E-12 (processBarcode default url) | ○ |
| C-41 | Barcode link URLは barcode/link/ | E-01 (linkBarcode) | ○ |
| C-42 | Barcode unlink URLは barcode/unlink/ | E-01 (unlinkBarcode) | ○ |
| C-43 | Attachment URLは attachment/ | E-09 (InvenTreeAttachment.URL) | ○ |
| C-44 | Notification URLは notifications/ | E-08 (InvenTreeNotification.URL) | ○ |
| C-45 | Label print URLは label/print/ | E-13 (PRINT_LABEL_URL) | ○ |
| C-46 | レスポンスボディの詳細なフィールド構造 | **根拠なし** | △ |
| C-47 | 一部のクエリパラメータのデフォルト値 | **根拠なし** | △ |
| C-48 | エラーレスポンスの詳細なJSON構造 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **サーバー側API仕様書**：InvenTreeサーバーのOpenAPI/Swagger定義があれば、レスポンス構造の詳細を確認可能
  - 候補：InvenTreeサーバーリポジトリ / /api/schema/ エンドポイント / 公式ドキュメント
- **バリデーションルール詳細**：フィールドの最大長、必須条件などはサーバー側OPTIONS応答から動的に取得される設計のため、静的に記載困難
  - 候補：OPTIONSリクエスト結果 / サーバー側モデル定義

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 大部分のエンドポイントURL、HTTPメソッド、認証方式はソースコードから直接確認可能
- **1: 中リスク** - レスポンスボディの詳細フィールドはサーバー実装に依存。アプリ側では動的にパースしているため、サーバーバージョンによって差異がある可能性
- **1: 中リスク** - APIバージョン別機能対応表は `supportsXxx` プロパティから抽出したが、全ての機能を網羅しているか要確認

## 6) レビュアーチェックリスト（最小）
- [ ] 認証フロー（Token取得 → 各APIリクエスト）が正確に記載されているか
- [ ] 主要エンドポイント（Part, Stock, PO, SO）のURL/メソッドがソースコードと一致するか
- [ ] バーコード関連APIの動作説明がアプリの実装と整合しているか
- [ ] APIバージョン互換性表が `api.dart` の `supportsXxx` プロパティと一致するか
- [ ] 在庫操作（transfer/count/add/remove）のリクエストボディ形式が正確か
- [ ] レスポンス例のJSONフィールドが実際のサーバー応答と一致するか（サーバー側確認必要）
