mirror of
https://github.com/sstent/aicyclingcoach-go.git
synced 2026-01-25 16:41:48 +00:00
1.7 KiB
1.7 KiB
Export/Import API Specification
Export Endpoint
GET /api/export
Parameters (query string)
types(required): Comma-separated list of data types to export- Valid values:
routes,rules,plans,all
- Valid values:
format(required): Export formatjson: Single JSON filezip: ZIP archive with separate filesgpx: Only GPX files (routes only)
Response
200 OKwith file download400 Bad Requestfor invalid parameters500 Internal Server Errorfor export failures
Example
GET /api/export?types=routes,plans&format=zip
Import Validation
POST /api/import/validate
Request
- Multipart form with
filefield containing import data
Response
{
"valid": true,
"conflicts": [
{
"type": "route",
"id": 123,
"name": "Mountain Loop",
"existing_version": 2,
"import_version": 3,
"resolution_options": ["overwrite", "rename", "skip"]
}
],
"summary": {
"routes": 15,
"rules": 3,
"plans": 2
}
}
Import Execution
POST /api/import
Request
- Multipart form with:
file: Import data fileconflict_resolution: Global strategy (overwrite, skip, rename)resolutions: JSON array of specific resolutions (optional)[{"type": "route", "id": 123, "action": "overwrite"}]
Response
{
"imported": {
"routes": 12,
"rules": 3,
"plans": 2
},
"skipped": {
"routes": 3,
"rules": 0,
"plans": 0
},
"errors": []
}
Status Codes
200 OK: Import completed202 Accepted: Import in progress (async)400 Bad Request: Invalid input409 Conflict: Unresolved conflicts