Expand description
Module for Subsonic API requests.
§Example
Building the request to get a song by ID:
use subsonic_types::{
common::{Version, Format},
request::{Request, SubsonicRequest, browsing::GetSong, Authentication}
};
let request = Request {
username: "admin".into(),
authentication: Authentication::Password("admin".into()),
version: Version::LATEST,
client: "Rust Example".into(),
format: Some(Format::Json.to_string()),
body: GetSong {
id: "123".into(),
},
};
let query = request.to_query();
assert_eq!("u=admin&p=admin&v=1.16.1&c=Rust%20Example&f=json&id=123", query);
Parsing a request:
use subsonic_types::{
common::{Version, Format},
request::{Request, SubsonicRequest, browsing::GetSong, Authentication}
};
let query = "u=admin&p=admin&v=1.16.1&c=Rust%20Example&f=json&id=123";
let request: Request<GetSong> = Request::from_query(query).unwrap();
let expected = Request {
username: "admin".into(),
authentication: Authentication::Password("admin".into()),
version: Version::LATEST,
client: "Rust Example".into(),
format: Some(Format::Json.to_string()),
body: GetSong {
id: "123".into(),
},
};
assert_eq!(expected, request);
Modules§
- annotation
- Media annotation methods
- bookmark
- Bookmarks methods
- browsing
- Browing methods
- chat
- Chat methods
- jukebox
- Jukebox methods
- lists
- Albumm/song lists methods
- playlists
- Playlists methods
- podcast
- Podcast methods
- radio
- Internet radio methods
- retrieval
- Media retrieval methods
- scan
- Media library scanning methods
- search
- Searching methods
- sharing
- Sharing methods
- system
- System methods System requests.
- user
- User management methods
Structs§
Enums§
Traits§
- Subsonic
Request - Trait for Subsonic API requests