MoosicBox Music API API
API models and endpoint implementations for music API management.
Overview
The MoosicBox Music API API package provides:
- API Models: REST API models for music API management
- Authentication Models: Authentication method definitions and values
- API Conversion: Convert MusicApi instances to API-compatible models
- Feature Integration: Optional API endpoint implementations
Models
ApiMusicApi
- Service Info: ID, name, and display information
- Authentication Status: Login status and authentication methods
- Scan Support: Scanning capabilities and status
- Feature Flags: Supported operations and configurations
Authentication
- AuthMethod: Available authentication methods (UsernamePassword, Poll)
- AuthValues: Authentication credential structures
- Login Status: Real-time authentication status checking
Features
API Model Conversion
- MusicApi to ApiMusicApi: Convert service instances to API models
- Authentication Integration: Include authentication status and methods
- Scan Status: Include scanning capabilities and current status
- Async Operations: Async conversion with error handling
Authentication Support
- Username/Password: Traditional credential-based authentication
- Poll Authentication: OAuth-style polling authentication
- Status Checking: Real-time authentication status verification
Installation
Add this to your Cargo.toml:
[]
= { = "../music_api/api" }
# Enable API endpoints
= {
path = "../music_api/api",
= ["api"]
}
# Enable authentication features
= {
path = "../music_api/api",
= ["auth-username-password", "auth-poll"]
}
Usage
API Model Conversion
use convert_to_api_music_api;
use MusicApi;
// Convert MusicApi to API model
let api_model = convert_to_api_music_api.await?;
println!;
println!;
println!;
Authentication Models
use ;
// Check authentication method
match api_model.auth_method
// Provide authentication values
let auth_values = UsernamePassword ;
Service Information
// Access service information
println!;
println!;
println!;
println!;
println!;
Feature Flags
api: Enable API endpoint implementationsauth-username-password: Enable username/password authenticationauth-poll: Enable polling-based authenticationopenapi: Enable OpenAPI schema generation
Dependencies
- MoosicBox Music API: Core music API traits
- Serde: Serialization and deserialization
- UToipa: Optional OpenAPI schema generation
Integration
This package is designed for:
- REST API Development: API model definitions for endpoints
- Authentication Systems: Authentication method handling
- Service Management: Music service configuration and status
- API Documentation: OpenAPI schema generation