Update new API..
This commit is contained in:
177
外部システムAPI仕様書.md
177
外部システムAPI仕様書.md
@ -623,6 +623,133 @@ zekken_number=101&event_code=岐阜ロゲイニング2025
|
||||
|
||||
---
|
||||
|
||||
## 10. エントリー管理API
|
||||
|
||||
### 10.1 現在のエントリー情報取得
|
||||
ユーザーの最新のエントリー情報を取得します。アプリとサーバー間のデータ同期に使用されます。
|
||||
|
||||
**エンドポイント**: `GET /user/current-entry-info/`
|
||||
|
||||
**認証**: 必須(Token認証)
|
||||
|
||||
**レスポンス(成功時)**:
|
||||
```json
|
||||
{
|
||||
"id": 123,
|
||||
"team": {
|
||||
"id": 45,
|
||||
"team_name": "サンプルチーム",
|
||||
"owner": 67
|
||||
},
|
||||
"event": {
|
||||
"id": 12,
|
||||
"event_name": "岐阜ロゲイニング2025",
|
||||
"start_datetime": "2025-09-15T10:00:00Z",
|
||||
"end_datetime": "2025-09-15T16:00:00Z"
|
||||
},
|
||||
"category": {
|
||||
"id": 1,
|
||||
"category_name": "一般男子",
|
||||
"duration": 180,
|
||||
"num_of_member": 4
|
||||
},
|
||||
"zekken_number": 101,
|
||||
"date": "2025-09-15T10:00:00Z",
|
||||
"hasParticipated": false,
|
||||
"hasGoaled": false
|
||||
}
|
||||
```
|
||||
|
||||
**レスポンス(エントリーなし)**:
|
||||
```json
|
||||
{
|
||||
"message": "エントリー情報が見つかりません"
|
||||
}
|
||||
```
|
||||
|
||||
**レスポンス(認証エラー)**:
|
||||
```json
|
||||
{
|
||||
"detail": "認証情報が提供されていません。"
|
||||
}
|
||||
```
|
||||
|
||||
### 10.2 エントリーステータス更新
|
||||
エントリーの参加状況とゴール状況を更新します。後方互換性のため、新旧フィールド名の両方をサポートしています。
|
||||
|
||||
**エンドポイント**: `PUT /entry/{entry_id}/update-status/`
|
||||
|
||||
**認証**: 必須(Token認証)
|
||||
|
||||
**リクエストパラメータ(新フィールド名)**:
|
||||
```json
|
||||
{
|
||||
"hasParticipated": true,
|
||||
"hasGoaled": false
|
||||
}
|
||||
```
|
||||
|
||||
**リクエストパラメータ(旧フィールド名・後方互換性)**:
|
||||
```json
|
||||
{
|
||||
"has_participated": true,
|
||||
"has_goaled": false
|
||||
}
|
||||
```
|
||||
|
||||
**レスポンス(成功時)**:
|
||||
```json
|
||||
{
|
||||
"id": 123,
|
||||
"team": {
|
||||
"id": 45,
|
||||
"team_name": "サンプルチーム"
|
||||
},
|
||||
"event": {
|
||||
"id": 12,
|
||||
"event_name": "岐阜ロゲイニング2025"
|
||||
},
|
||||
"zekken_number": 101,
|
||||
"hasParticipated": true,
|
||||
"hasGoaled": false,
|
||||
"updated_at": "2025-09-15T11:30:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
**レスポンス(エラー時)**:
|
||||
```json
|
||||
{
|
||||
"detail": "エントリーが見つかりません。"
|
||||
}
|
||||
```
|
||||
|
||||
**使用例**:
|
||||
|
||||
**現在のエントリー情報取得**:
|
||||
```bash
|
||||
curl -X GET "/user/current-entry-info/" \
|
||||
-H "Authorization: Token <your_token>" \
|
||||
-H "Content-Type: application/json"
|
||||
```
|
||||
|
||||
**ステータス更新(参加開始)**:
|
||||
```bash
|
||||
curl -X PUT "/entry/123/update-status/" \
|
||||
-H "Authorization: Token <your_token>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"hasParticipated": true, "hasGoaled": false}'
|
||||
```
|
||||
|
||||
**ステータス更新(ゴール完了)**:
|
||||
```bash
|
||||
curl -X PUT "/entry/123/update-status/" \
|
||||
-H "Authorization: Token <your_token>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"hasParticipated": true, "hasGoaled": true}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## エラーコード一覧
|
||||
|
||||
| ステータスコード | 説明 |
|
||||
@ -682,22 +809,37 @@ zekken_number=101&event_code=岐阜ロゲイニング2025
|
||||
curl -X POST "/entry/" -H "Authorization: Token <token>" -d '{"team":1,"event":1,"category":1}'
|
||||
```
|
||||
|
||||
7. **スタート**
|
||||
7. **エントリー情報確認**
|
||||
```bash
|
||||
curl -X GET "/user/current-entry-info/" -H "Authorization: Token <token>"
|
||||
```
|
||||
|
||||
8. **スタート前ステータス更新**
|
||||
```bash
|
||||
curl -X PUT "/entry/123/update-status/" -H "Authorization: Token <token>" -d '{"hasParticipated": true, "hasGoaled": false}'
|
||||
```
|
||||
|
||||
9. **スタート**
|
||||
```bash
|
||||
curl -X POST "/start_from_rogapp" -d '{"event_code":"岐阜ロゲイニング2025","team_name":"サンプルチーム"}'
|
||||
```
|
||||
|
||||
8. **チェックイン**
|
||||
```bash
|
||||
curl -X POST "/checkin_from_rogapp" -d '{"event_code":"岐阜ロゲイニング2025","team_name":"サンプルチーム","cp_number":1,"image":"https://example.com/photo1.jpg"}'
|
||||
```
|
||||
10. **チェックイン**
|
||||
```bash
|
||||
curl -X POST "/checkin_from_rogapp" -d '{"event_code":"岐阜ロゲイニング2025","team_name":"サンプルチーム","cp_number":1,"image":"https://example.com/photo1.jpg"}'
|
||||
```
|
||||
|
||||
9. **ゴール**
|
||||
```bash
|
||||
curl -X POST "/goal_from_rogapp" -d '{"event_code":"岐阜ロゲイニング2025","team_name":"サンプルチーム","image":"https://example.com/goal.jpg"}'
|
||||
```
|
||||
11. **ゴール**
|
||||
```bash
|
||||
curl -X POST "/goal_from_rogapp" -d '{"event_code":"岐阜ロゲイニング2025","team_name":"サンプルチーム","image":"https://example.com/goal.jpg"}'
|
||||
```
|
||||
|
||||
10. **証明書取得**
|
||||
12. **ゴール後ステータス更新**
|
||||
```bash
|
||||
curl -X PUT "/entry/123/update-status/" -H "Authorization: Token <token>" -d '{"hasParticipated": true, "hasGoaled": true}'
|
||||
```
|
||||
|
||||
13. **証明書取得**
|
||||
```bash
|
||||
curl "/download_scoreboard?zekken_number=101&event_code=岐阜ロゲイニング2025"
|
||||
```
|
||||
@ -725,6 +867,8 @@ zekken_number=101&event_code=岐阜ロゲイニング2025
|
||||
3. **画像アップロード**: 画像ファイルは事前に適切なストレージにアップロードし、URLを指定してください
|
||||
4. **時刻形式**: すべての時刻は ISO 8601 形式(YYYY-MM-DDTHH:MM:SSZ)で指定してください
|
||||
5. **エラーハンドリング**: APIからのエラーレスポンスを適切に処理してください
|
||||
6. **エントリー情報同期**: アプリ起動時は `/user/current-entry-info/` でエントリー情報を同期してください
|
||||
7. **ステータス更新**: エントリーステータス更新API は後方互換性のため新旧フィールド名をサポートしています
|
||||
|
||||
---
|
||||
|
||||
@ -804,6 +948,19 @@ zekken_number=101&event_code=岐阜ロゲイニング2025
|
||||
- **参照**: `rog_entry` (チーム情報取得)
|
||||
- **参照**: `rog_gpslog` (チェックイン画像URL)
|
||||
|
||||
#### 9. エントリー管理系API
|
||||
**`/user/current-entry-info/` (現在のエントリー情報取得)**
|
||||
- **参照**: `rog_entry` (ユーザーの最新エントリー情報)
|
||||
- **参照**: `rog_team` (チーム基本情報)
|
||||
- **参照**: `rog_newevent2` (イベント情報)
|
||||
- **参照**: `rog_newcategory` (カテゴリ詳細情報)
|
||||
- **参照**: `knox_authtoken` (ユーザー認証)
|
||||
|
||||
**`/entry/{entry_id}/update-status/` (エントリーステータス更新)**
|
||||
- **参照**: `rog_entry` (対象エントリー検索)
|
||||
- **更新**: `rog_entry` (hasParticipated/hasGoaled更新)
|
||||
- **参照**: `knox_authtoken` (ユーザー認証・権限確認)
|
||||
|
||||
---
|
||||
|
||||
## テーブル別API使用一覧表
|
||||
|
||||
Reference in New Issue
Block a user