Skip to content

OpenAPI Generatorを使用した新API仕様への移行#25

Merged
Atsumi3 merged 3 commits intodevelopfrom
feature/openapi-integration
Sep 26, 2025
Merged

OpenAPI Generatorを使用した新API仕様への移行#25
Atsumi3 merged 3 commits intodevelopfrom
feature/openapi-integration

Conversation

@Atsumi3
Copy link
Member

@Atsumi3 Atsumi3 commented Sep 26, 2025

概要

サーバー側の最新API仕様に合わせて、OpenAPI Generatorを使用した自動生成コードベースのAPI実装に移行しました。

変更内容

🚀 新機能

  • OpenAPI Generator Gradleプラグインの導入
  • API仕様書(api.yaml)による型安全なクライアントコード自動生成
  • 完全なCRUD操作対応(Items、Sales、Staff、Stores、Settings、Users)

🔄 変更点

  • 既存の手動実装APIServiceを自動生成ベースの実装に置き換え
  • Prod環境とDemo環境の両方に対応したDI設定
  • サーバー側リポジトリの最新API仕様(api.yaml)を統合

🗑️ 削除

  • 古いAPIServiceインターフェースの削除
  • 手動実装のAPI定義を削除

Breaking Changes ⚠️

  • APIエンドポイントパスの変更: すべてのエンドポイントに /api/ プレフィックスが追加
    • 例: store/list/api/stores
  • レスポンス構造の変更: 一部のフィールド名や型が変更されています

テスト結果

  • ✅ Production Debug APK: ビルド成功
  • ✅ Demo Debug APK: ビルド成功
  • ✅ Lint: 警告のみ(エラーなし)

今後の作業

  • サーバー側のエンドポイント実装との結合テスト
  • 認証機能(Bearer Token)の実装
  • エラーハンドリングの強化

関連リポジトリ

- サーバー側リポジトリからapi.yamlを取得して配置
- OpenAPI Generator Gradleプラグインを設定
- Kotlin + Retrofit2用のAPIクライアントコードを自動生成
- 既存のAPIServiceインターフェースを新しい実装に置き換え
- Prod環境とDemo環境のDI設定を更新
- 古いAPI実装を完全に削除

Breaking Changes:
- APIエンドポイントパスが変更(/api/プレフィックスが追加)
- レスポンス構造の一部が変更
- Claude Code用の設定ファイル(.claude/settings.json)
- エディタ設定(.editorconfig)
- MCP(Model Context Protocol)設定(.mcp.json)
- プロジェクト用Claude開発ガイドライン(CLAUDE.md)

これらのファイルにより、AI支援開発の効率化と一貫性が向上します。
## 修正内容

### ビルドエラー修正
- APIServiceのDI定義で型指定を追加
- ZXingライブラリのtransitive設定を削除(依存関係の不足を解消)
- Lintエラー2件を修正
  - StoreListDialogFragment: context!!をrequireContext()に変更
  - AndroidManifest: カメラのuses-featureタグを追加

### UI/UX改善
- 設定画面のActionBarに戻るボタンを追加
- お店切り替え画面にタイムアウト処理を追加(3秒)
- 練習モード用のダミー店舗を「100リバー」「デパート」に設定
- 練習モードで商品追加ボタンを実装(ダミー商品を追加可能)
- ボタンのパディングを統一

### 安定性向上
- DialogFragmentの状態チェックを追加し、onSaveInstanceState後のクラッシュを防止
@Atsumi3
Copy link
Member Author

Atsumi3 commented Sep 26, 2025

✅ PR更新完了

修正内容

ビルドエラー修正

  • APIServiceのDI定義で型指定を追加(#25のクラッシュ修正)
  • ZXingライブラリのtransitive設定を削除(依存関係不足の解消)
  • Lintエラー2件を修正

UI/UX改善

  • 設定画面のActionBarに戻るボタンを追加
  • お店切り替え画面にタイムアウト処理を追加(3秒)
  • 練習モード用のダミー店舗を「100リバー」「デパート」に設定
  • 練習モードで商品追加ボタンを実装
  • ボタンのパディングを統一

安定性向上

  • DialogFragmentの状態チェックを追加(onSaveInstanceState後のクラッシュを防止)

すべての修正が完了し、アプリが正常に動作することを確認しました。

@Atsumi3 Atsumi3 merged commit d46be37 into develop Sep 26, 2025
@Atsumi3 Atsumi3 deleted the feature/openapi-integration branch September 26, 2025 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant