92 lines
2.2 KiB
Markdown
92 lines
2.2 KiB
Markdown
# さけのわAPI連携ドキュメント
|
||
|
||
## 概要
|
||
Ponshu Room Liteはさけのわ(Sakenowa)APIを活用し、日本酒ランキング・ブランド情報・フレーバーチャートを取得しています。
|
||
|
||
---
|
||
|
||
## API エンドポイント
|
||
|
||
| エンドポイント | 説明 | 更新頻度 |
|
||
|:---------------|:-----|:---------|
|
||
| `/rankings` | TOP100ランキング | 毎日 |
|
||
| `/brands` | 銘柄マスタ(16,000件以上) | 週次 |
|
||
| `/flavor-charts` | 6軸フレーバーチャート | 週次 |
|
||
|
||
---
|
||
|
||
## データモデル
|
||
|
||
### SakenowaRanking
|
||
```dart
|
||
class SakenowaRanking {
|
||
final int rank; // 順位
|
||
final String brandId; // 銘柄ID
|
||
}
|
||
```
|
||
|
||
### SakenowaBrand
|
||
```dart
|
||
class SakenowaBrand {
|
||
final String id; // 銘柄ID
|
||
final String name; // 銘柄名
|
||
}
|
||
```
|
||
|
||
### SakenowaFlavorChart
|
||
```dart
|
||
class SakenowaFlavorChart {
|
||
final String brandId;
|
||
final double f1; // 華やか (0-1)
|
||
final double f2; // 芳醇
|
||
final double f3; // 重厚
|
||
final double f4; // 穏やか
|
||
final double f5; // 軽快
|
||
final double f6; // ドライ
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Riverpodプロバイダー
|
||
|
||
```dart
|
||
// lib/providers/sakenowa_providers.dart
|
||
final sakenowaRankingsProvider = FutureProvider<List<SakenowaRanking>>();
|
||
final sakenowaBrandsProvider = FutureProvider<List<SakenowaBrand>>();
|
||
final sakenowaFlavorChartsProvider = FutureProvider<List<SakenowaFlavorChart>>();
|
||
```
|
||
|
||
---
|
||
|
||
## 実装済み機能
|
||
|
||
### 1. ソムリエ画面
|
||
- **SakenowaNewRecommendationSection**: コサイン類似度で未飲銘柄を推薦
|
||
- **SakenowaRankingSection**: 3Dカルーセルでランキング表示、既飲ハイライト+MBTI相性
|
||
|
||
### 2. MBTI相性計算
|
||
```dart
|
||
// 6軸フレーバー → 5軸五味へのマッピング
|
||
f1(華やか) → aroma
|
||
f2(芳醇)+f4(穏やか) → sweetness
|
||
f3(重厚) → body
|
||
f5(軽快) → acidity
|
||
f6(ドライ) → bitterness
|
||
```
|
||
|
||
---
|
||
|
||
## 未実装/改善予定
|
||
|
||
| 項目 | 状態 |
|
||
|:-----|:-----|
|
||
| カード詳細画面でのさけのわ連携おすすめ | ❌ 未実装 |
|
||
| ランキングカードから詳細画面遷移 | ❌ 未実装 |
|
||
| オフラインキャッシュ | ✅ 実装済み |
|
||
|
||
---
|
||
|
||
## 帰属表示
|
||
データ提供: さけのわ (https://sakenowa.com)
|