GET /api/health- Health checkPOST /api/search- Search booksGET /api/book- Get book info (params: source, url)GET /api/chapters- Get chapter list (params: source, url)GET /api/content- Get chapter content (params: source, url)POST /api/batch/content- Batch content fetch
GET /api/bookshelf- List bookshelfPOST /api/bookshelf- Add to bookshelfPATCH /api/bookshelf/{id}- Update progressPUT /api/bookshelf/{id}- Move to groupDELETE /api/bookshelf/{id}- Remove from bookshelfGET /api/groups- List groupsPOST /api/groups- Save groupDELETE /api/groups/{id}- Delete group
GET /api/sources- List all sourcesPOST /api/sources- Add sourceGET /api/sources/{id}- Get single sourceDELETE /api/sources/{id}- Delete sourcePUT /api/sources/{id}/status- Update source statusGET /api/sources/health- Source health stats
GET /api/replace_rules- List rulesPOST /api/replace_rules- Save ruleDELETE /api/replace_rules/{id}- Delete rule
GET /api/discovery- Discovery page
GET /api/ai/mappings- List AI mappingsPOST /api/ai/mappings- Save AI mappingDELETE /api/ai/mappings/{id}- Delete AI mappingGET /api/ai/history- List AI historyPOST /api/ai/history- Save AI historyDELETE /api/ai/history- Clear AI history
GET /api/voice/metadata- List voice metadataPOST /api/voice/metadata- Save voice metadataDELETE /api/voice/metadata/{id}- Delete voice metadataGET /api/voice/config/{key}- Get voice configPOST /api/voice/config/{key}- Save voice config
aiApi.chat()-/ai/chat- NOT EXISTSaiApi.analyze()-/ai/analyze- NOT EXISTSaiApi.recommend()-/ai/recommend- NOT EXISTSvoiceApi.synthesize()-/tts/synthesize- NOT EXISTSvoiceApi.getVoices()-/tts/voices- NOT EXISTSvoiceApi.updateSettings()-/tts/settings- NOT EXISTSsystemApi.getStatus()-/system/status- NOT EXISTSsystemApi.getConfig()-/system/config- NOT EXISTSsystemApi.updateConfig()-/system/config- NOT EXISTSsystemApi.getLogs()-/system/logs- NOT EXISTSsystemApi.restart()-/system/restart- NOT EXISTS
testBookSource()-/sources/{id}/test- NOT EXISTS (marked as "待实现")
addBookGroupMulti()-/bookshelf/batch-move- NOT EXISTS
saveBookGroupOrder()- Uses/groupsPOST with orderIndex - INCONSISTENT with backend
POST /api/search✅ EXISTS
GET /api/book✅ EXISTSGET /api/chapters✅ EXISTSGET /api/content✅ EXISTS
GET /api/bookshelf✅ EXISTSPOST /api/bookshelf✅ EXISTSPATCH /api/bookshelf/{id}✅ EXISTSDELETE /api/bookshelf/{id}✅ EXISTS
GET /api/sources✅ EXISTSPOST /api/sources✅ EXISTSDELETE /api/sources/{id}✅ EXISTSPUT /api/sources/{id}/status✅ EXISTS
GET /api/replace_rules✅ EXISTSPOST /api/replace_rules✅ EXISTSDELETE /api/replace_rules/{id}✅ EXISTS
GET /api/groups✅ EXISTSPOST /api/groups✅ EXISTSDELETE /api/groups/{id}✅ EXISTS
- ✅ Switch type-check from tsc to vue-tsc
- ✅ Verify nexus-reader builds
- ❌ Check nexus-lite cargo check
- ⏳ Remove/feature-flag non-existent API calls:
- Remove
unified.tsimports from pages - Remove calls to non-existent AI/voice/system APIs
- Remove
testBookSource()calls - Remove
addBookGroupMulti()calls - Fix
saveBookGroupOrder()to match backend
- Remove
- ⏳ Document API contracts (this file)
- Delete
api/unified.ts - Delete
stores/unified.ts - Clean up
unified-utils.ts - Establish 4 journey modules: search, reader, library, source
- Remove non-backend-supported features:
- Source subscription
- Source switching search
- Pseudo WebSocket search status
- Unclosed AI chat/recommendations
- Unclosed TTS interfaces