Repository navigation
feat(api)!: sync specification - #460
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## beta #460 +/- ##
============================================
+ Coverage 49.84% 51.66% +1.81%
- Complexity 582 712 +130
============================================
Files 243 299 +56
Lines 8626 10532 +1906
Branches 1054 1299 +245
============================================
+ Hits 4300 5441 +1141
- Misses 3526 4073 +547
- Partials 800 1018 +218 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Synchronizes this Spotify Web API Java wrapper with Spotify’s current OpenAPI schema by renaming request APIs to match spec naming, updating endpoint paths/parameters, and expanding/refreshing the fixture-backed test suite.
Changes:
- Renames multiple request classes/builders and corresponding
SpotifyApientrypoints (e.g.,searchItem→search,getTheUsersQueue→getQueue, etc.) and updates examples/tests accordingly. - Updates several playlist endpoints from
/tracksto/itemsand adjusts related tests/fixtures. - Adds/updates request implementations, fixtures, and tests for additional endpoints (e.g., markets, audiobooks, chapters, multi-entity fetches).
Reviewed changes
Copilot reviewed 202 out of 219 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/se/michaelthelin/spotify/requests/data/users_profile/GetUsersProfileRequestTest.java | Adds fixture-backed test for user profile request. |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralTracksRequestTest.java | Adds fixture-backed test for several-tracks request. |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralAudioFeaturesRequestTest.java | Renames/aligns audio-features-for-several-tracks test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioFeaturesRequestTest.java | Renames/aligns single-track audio-features test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioAnalysisRequestTest.java | Renames/aligns audio-analysis test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/shows/GetMultipleShowsRequestTest.java | Adds fixture-backed test for multiple-shows request. |
| src/test/java/se/michaelthelin/spotify/requests/data/search/SearchRequestTest.java | Renames/aligns search test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/UploadCustomPlaylistCoverRequestTest.java | Renames/aligns upload cover test to new API names. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/ReplacePlaylistsItemsRequestTest.java | Updates expected playlist replace-items URI path. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/ReorderPlaylistsItemsRequestTest.java | Updates expected playlist reorder-items URI path. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/RemoveItemsPlaylistRequestTest.java | Renames/aligns remove-items test to new API names/fixtures and /items path. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistsItemsRequestTest.java | Updates expected playlist items endpoint path/hrefs. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistCoverRequestTest.java | Renames/aligns playlist cover test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetListUsersPlaylistsRequestTest.java | Adds fixture-backed test for listing a user’s playlists. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/CreatePlaylistForUserRequestTest.java | Adds fixture-backed test for create-playlist-for-user. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/ChangePlaylistDetailsRequestTest.java | Renames/aligns change-playlist-details test to new API names. |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/AddItemsToPlaylistRequestTest.java | Updates expected add-items endpoint path from /tracks to /items. |
| src/test/java/se/michaelthelin/spotify/requests/data/player/StartUsersPlaybackRequestTest.java | Renames/aligns start playback test to new API names. |
| src/test/java/se/michaelthelin/spotify/requests/data/player/StartUsersPlaybackRequestNumericTest.java | Renames/aligns numeric body typing regression test to new API names. |
| src/test/java/se/michaelthelin/spotify/requests/data/player/GetRecentlyPlayedRequestTest.java | Renames/aligns recently played test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/player/GetQueueRequestTest.java | Renames/aligns queue test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/player/AddToQueueRequestTest.java | Renames/aligns add-to-queue test to new API names. |
| src/test/java/se/michaelthelin/spotify/requests/data/markets/GetAvailableMarketsRequestTest.java | Adds fixture-backed test for available markets request. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveTracksForCurrentUserRequestTest.java | Adds fixture-backed test for saving tracks (deprecated endpoint). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveShowsForCurrentUserRequestTest.java | Adds fixture-backed test for saving shows (deprecated endpoint). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveLibraryItemsRequestTest.java | Renames/aligns library-save test to consolidated “library items” endpoint. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveEpisodesForCurrentUserRequestTest.java | Adds fixture-backed test for saving episodes (deprecated endpoint). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveAudiobooksForCurrentUserRequestTest.java | Adds fixture-backed test for saving audiobooks. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveAlbumsForCurrentUserRequestTest.java | Adds fixture-backed test for saving albums (deprecated endpoint). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveTracksForCurrentUserRequestTest.java | Adds fixture-backed test for removing tracks (deprecated endpoint). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveShowsForCurrentUserRequestTest.java | Adds fixture-backed test for removing shows (deprecated endpoint). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveLibraryItemsRequestTest.java | Renames/aligns library-remove test to consolidated “library items” endpoint. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveEpisodesForCurrentUserRequestTest.java | Corrects test to target remove-episodes endpoint rather than legacy follow playlist code. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveAudiobooksForCurrentUserRequestTest.java | Adds fixture-backed test for removing audiobooks. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveAlbumsForCurrentUserRequestTest.java | Corrects test to target remove-albums endpoint rather than legacy unfollow playlist code. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/GetUsersSavedAudiobooksRequestTest.java | Adds fixture-backed test for saved audiobooks paging. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/GetUsersSavedAlbumsRequestTest.java | Renames/aligns saved albums test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedAudiobooksRequestTest.java | Adds fixture-backed test for saved audiobooks “contains” endpoint (deprecated). |
| src/test/java/se/michaelthelin/spotify/requests/data/library/CheckLibraryContainsRequestTest.java | Adds fixture-backed test for consolidated “library contains” endpoint. |
| src/test/java/se/michaelthelin/spotify/requests/data/follow/GetFollowedRequestTest.java | Renames/aligns followed-artists test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/follow/CheckIfUserFollowsPlaylistRequestTest.java | Renames/aligns playlist-follow check test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/episodes/GetMultipleEpisodesRequestTest.java | Adds fixture-backed test for multiple-episodes request. |
| src/test/java/se/michaelthelin/spotify/requests/data/chapters/GetSeveralChaptersRequestTest.java | Adds fixture-backed test for several-chapters request. |
| src/test/java/se/michaelthelin/spotify/requests/data/chapters/GetChapterRequestTest.java | Adds fixture-backed test for chapter request. |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/miscellaneous/GetRecommendationGenresRequestTest.java | Renames/aligns genre seeds test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetNewReleasesRequestTest.java | Adds fixture-backed test for new releases. |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetFeaturedPlaylistsRequestTest.java | Renames/aligns featured playlists test to new API names/fixtures. |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategorysPlaylistRequestTest.java | Updates category playlists request/test wiring to new class/fixture names. |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategoryRequestTest.java | Adds fixture-backed test for get category. |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategoriesRequestTest.java | Adds fixture-backed test for get categories. |
| src/test/java/se/michaelthelin/spotify/requests/data/audiobooks/GetMultipleAudiobooksRequestTest.java | Adds fixture-backed test for multiple audiobooks. |
| src/test/java/se/michaelthelin/spotify/requests/data/audiobooks/GetAudiobookRequestTest.java | Adds fixture-backed test for get audiobook. |
| src/test/java/se/michaelthelin/spotify/requests/data/audiobooks/GetAudiobookChaptersRequestTest.java | Adds fixture-backed test for audiobook chapters paging. |
| src/test/java/se/michaelthelin/spotify/requests/data/artists/GetMultipleArtistsRequestTest.java | Adds fixture-backed test for multiple artists. |
| src/test/java/se/michaelthelin/spotify/requests/data/artists/GetArtistsTopTracksRequestTest.java | Adds fixture-backed test for artist top tracks. |
| src/test/java/se/michaelthelin/spotify/requests/data/albums/GetMultipleAlbumsRequestTest.java | Adds fixture-backed test for multiple albums. |
| src/test/java/se/michaelthelin/spotify/ITest.java | Adds new test IDs used by added fixtures/tests. |
| src/test/fixtures/requests/data/users_profile/GetUsersProfileRequest.json | Adds fixture for user profile response. |
| src/test/fixtures/requests/data/tracks/GetSeveralTracksRequest.json | Adds fixture for several tracks response. |
| src/test/fixtures/requests/data/tracks/GetAudioFeaturesRequest.json | Adds fixture for audio features response. |
| src/test/fixtures/requests/data/shows/GetMultipleShowsRequest.json | Adds fixture for multiple shows response. |
| src/test/fixtures/requests/data/playlists/RemoveItemsPlaylistRequest.json | Adds fixture for remove-items playlist snapshot result. |
| src/test/fixtures/requests/data/playlists/GetPlaylistsItemsRequest_Episode.json | Updates playlist items episode fixture href to /items. |
| src/test/fixtures/requests/data/playlists/GetPlaylistsItemsRequest.json | Updates playlist items fixture href to /items. |
| src/test/fixtures/requests/data/playlists/GetPlaylistCoverRequest.json | Adds fixture for playlist cover images. |
| src/test/fixtures/requests/data/playlists/GetListUsersPlaylistsRequest_UserWith$.json | Adds fixture for list playlists (special user id). |
| src/test/fixtures/requests/data/playlists/GetListUsersPlaylistsRequest.json | Adds fixture for list playlists. |
| src/test/fixtures/requests/data/playlists/CreatePlaylistForUserRequest.json | Adds fixture for playlist creation response. |
| src/test/fixtures/requests/data/library/SaveTracksForCurrentUserRequest.json | Adds empty fixture for save tracks response. |
| src/test/fixtures/requests/data/library/SaveShowsForCurrentUserRequest.json | Adds empty fixture for save shows response. |
| src/test/fixtures/requests/data/library/SaveEpisodesForCurrentUserRequest.json | Adds empty fixture for save episodes response. |
| src/test/fixtures/requests/data/library/SaveAudiobooksForCurrentUserRequest.json | Adds empty fixture for save audiobooks response. |
| src/test/fixtures/requests/data/library/SaveAlbumsForCurrentUserRequest.json | Adds empty fixture for save albums response. |
| src/test/fixtures/requests/data/library/RemoveTracksForCurrentUserRequest.json | Adds empty fixture for remove tracks response. |
| src/test/fixtures/requests/data/library/RemoveShowsForCurrentUserRequest.json | Adds empty fixture for remove shows response. |
| src/test/fixtures/requests/data/library/RemoveEpisodesForCurrentUserRequest.json | Adds empty fixture for remove episodes response. |
| src/test/fixtures/requests/data/library/RemoveAudiobooksForCurrentUserRequest.json | Adds empty fixture for remove audiobooks response. |
| src/test/fixtures/requests/data/library/RemoveAlbumsForCurrentUserRequest.json | Adds empty fixture for remove albums response. |
| src/test/fixtures/requests/data/library/GetUsersSavedAudiobooksRequest.json | Adds fixture for saved audiobooks paging response. |
| src/test/fixtures/requests/data/library/CheckUsersSavedAudiobooksRequest.json | Adds fixture for saved audiobooks contains response. |
| src/test/fixtures/requests/data/library/CheckLibraryContainsRequest.json | Adds fixture for consolidated library contains response. |
| src/test/fixtures/requests/data/follow/GetFollowedRequest_None.json | Adds fixture for empty followed artists response. |
| src/test/fixtures/requests/data/follow/GetFollowedRequest.json | Adds fixture for followed artists response. |
| src/test/fixtures/requests/data/follow/CheckIfUserFollowsPlaylistRequest.json | Adds fixture for playlist follow check response. |
| src/test/fixtures/requests/data/episodes/GetMultipleEpisodesRequest.json | Adds fixture for multiple episodes response. |
| src/test/fixtures/requests/data/chapters/GetSeveralChaptersRequest.json | Adds fixture for several chapters response. |
| src/test/fixtures/requests/data/chapters/GetChapterRequest.json | Adds fixture for chapter response. |
| src/test/fixtures/requests/data/browse/GetNewReleasesRequest.json | Adds fixture for new releases response. |
| src/test/fixtures/requests/data/browse/GetCategoryRequest.json | Adds fixture for get category response. |
| src/test/fixtures/requests/data/browse/GetCategoriesRequest.json | Adds fixture for get categories response. |
| src/test/fixtures/requests/data/audiobooks/GetMultipleAudiobooksRequest.json | Adds fixture for multiple audiobooks response. |
| src/test/fixtures/requests/data/audiobooks/GetAudiobookRequest.json | Adds fixture for audiobook response. |
| src/test/fixtures/requests/data/audiobooks/GetAudiobookChaptersRequest.json | Adds fixture for audiobook chapters response. |
| src/test/fixtures/requests/data/artists/GetMultipleArtistsRequest.json | Adds fixture for multiple artists response. |
| src/test/fixtures/requests/data/artists/GetArtistsTopTracksRequest.json | Adds fixture for artist top tracks response. |
| src/test/fixtures/requests/data/albums/GetMultipleAlbumsRequest_None.json | Adds fixture for empty multiple albums response. |
| src/test/fixtures/requests/data/albums/GetMultipleAlbumsRequest.json | Adds fixture for multiple albums response. |
| src/main/java/se/michaelthelin/spotify/requests/data/users_profile/GetUsersProfileRequest.java | Adds request implementation for user profile endpoint (marked deprecated per spec). |
| src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralAudioFeaturesRequest.java | Renames/aligns several-audio-features request class and deprecation annotation. |
| src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioFeaturesRequest.java | Renames/aligns audio-features request class and deprecation annotation. |
| src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioAnalysisRequest.java | Renames/aligns audio-analysis request class and deprecation annotation. |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchTracksRequest.java | Updates search-related imports/Javadoc to new SearchRequest naming. |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchShowsRequest.java | Updates search-related imports/Javadoc to new SearchRequest naming. |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchPlaylistsRequest.java | Updates search-related imports/Javadoc to new SearchRequest naming. |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchEpisodesRequest.java | Updates search-related imports/Javadoc to new SearchRequest naming. |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchArtistsRequest.java | Updates search-related imports/Javadoc to new SearchRequest naming. |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchAlbumsRequest.java | Updates search-related imports/Javadoc to new SearchRequest naming. |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/UploadCustomPlaylistCoverRequest.java | Renames/aligns upload playlist cover request class. |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/ReplacePlaylistsItemsRequest.java | Updates endpoint path from /tracks to /items. |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/ReorderPlaylistsItemsRequest.java | Updates endpoint path from /tracks to /items. |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistsItemsRequest.java | Updates endpoint path from /tracks to /items. |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistCoverRequest.java | Renames/aligns get playlist cover request class. |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/AddItemsToPlaylistRequest.java | Updates endpoint path from /tracks to /items. |
| src/main/java/se/michaelthelin/spotify/requests/data/player/GetQueueRequest.java | Renames/aligns get queue request class. |
| src/main/java/se/michaelthelin/spotify/requests/data/player/AddToQueueRequest.java | Renames/aligns add-to-queue request class. |
| src/main/java/se/michaelthelin/spotify/requests/data/markets/GetAvailableMarketsRequest.java | Adds request implementation for available markets endpoint (marked deprecated per spec). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveTracksForCurrentUserRequest.java | Adds deprecated per-resource library save request (tracks). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveShowsForCurrentUserRequest.java | Adds deprecated per-resource library save request (shows). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveLibraryItemsRequest.java | Renames/aligns consolidated library save request. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveEpisodesForCurrentUserRequest.java | Adds deprecated per-resource library save request (episodes). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveAudiobooksForCurrentUserRequest.java | Adds request implementation for saving audiobooks. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveAlbumsForCurrentUserRequest.java | Adds deprecated per-resource library save request (albums). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveTracksForCurrentUserRequest.java | Adds deprecated per-resource library remove request (tracks). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveShowsForCurrentUserRequest.java | Adds deprecated per-resource library remove request (shows). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveLibraryItemsRequest.java | Renames/aligns consolidated library remove request. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveEpisodesForCurrentUserRequest.java | Adds deprecated per-resource library remove request (episodes). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveAudiobooksForCurrentUserRequest.java | Adds request implementation for removing audiobooks. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveAlbumsForCurrentUserRequest.java | Adds deprecated per-resource library remove request (albums). |
| src/main/java/se/michaelthelin/spotify/requests/data/library/GetUsersSavedEpisodesRequest.java | Updates Javadoc reference during spec sync. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedTracksRequest.java | Marks legacy “contains” request deprecated in favor of consolidated endpoint. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedShowsRequest.java | Marks legacy “contains” request deprecated in favor of consolidated endpoint. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedEpisodesRequest.java | Marks legacy “contains” request deprecated in favor of consolidated endpoint. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedAudiobooksRequest.java | Adds deprecated legacy “contains” request for audiobooks. |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedAlbumsRequest.java | Marks legacy “contains” request deprecated in favor of consolidated endpoint. |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/UnfollowPlaylistRequest.java | Marks follow playlist endpoint deprecated per spec. |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/UnfollowArtistsOrUsersRequest.java | Marks unfollow endpoint deprecated per spec. |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/GetFollowedRequest.java | Renames/aligns followed-artists request class. |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/FollowPlaylistRequest.java | Marks follow playlist endpoint deprecated per spec. |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/FollowArtistsOrUsersRequest.java | Marks follow endpoint deprecated per spec. |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/CheckCurrentUserFollowsArtistsOrUsersRequest.java | Marks follow-check endpoint deprecated and updates docs. |
| src/main/java/se/michaelthelin/spotify/requests/data/browse/miscellaneous/GetRecommendationGenresRequest.java | Renames/aligns genre seeds request class and deprecation annotation. |
| src/main/java/se/michaelthelin/spotify/requests/data/browse/GetRecommendationsRequest.java | Marks recommendations endpoint deprecated per spec. |
| src/main/java/se/michaelthelin/spotify/requests/data/artists/GetMultipleArtistsRequest.java | Adds deprecated request for multiple artists per spec. |
| src/main/java/se/michaelthelin/spotify/requests/data/artists/GetArtistsRelatedArtistsRequest.java | Marks related artists endpoint deprecated per spec. |
| src/main/java/se/michaelthelin/spotify/model_objects/specification/PlaylistSimplified.java | Updates references to renamed playlist remove-items request type. |
| src/main/java/se/michaelthelin/spotify/model_objects/specification/Playlist.java | Updates references to renamed playlist remove-items request type. |
| src/main/java/se/michaelthelin/spotify/model_objects/special/SearchResult.java | Updates references to renamed SearchRequest type. |
| src/main/java/se/michaelthelin/spotify/model_objects/interfaces/IPlaylist.java | Updates references to renamed playlist remove-items request type. |
| src/main/java/se/michaelthelin/spotify/enums/ModelObjectType.java | Adds AUDIOBOOK model object type. |
| examples/data/tracks/GetAudioFeaturesForTrackExample.java | Updates example to new getAudioFeatures API naming. |
| examples/data/tracks/GetAudioFeaturesForSeveralTracksExample.java | Updates example to new getSeveralAudioFeatures API naming. |
| examples/data/tracks/GetAudioAnalysisForTrackExample.java | Updates example to new getAudioAnalysis API naming. |
| examples/data/search/SearchItemExample.java | Updates example to new search API naming. |
| examples/data/playlists/RemoveItemsFromPlaylistExample.java | Updates example to renamed remove-items playlist API. |
| examples/data/playlists/GetPlaylistCoverImageExample.java | Updates example to renamed get playlist cover API. |
| examples/data/playlists/ChangePlaylistsDetailsExample.java | Updates example to renamed change playlist details API. |
| examples/data/player/StartResumeUsersPlaybackExample.java | Updates example to renamed start users playback API. |
| examples/data/player/GetTheUsersQueueExample.java | Updates example to renamed get queue API. |
| examples/data/player/GetCurrentUsersRecentlyPlayedTracksExample.java | Updates example to renamed recently played API. |
| examples/data/player/AddItemToUsersPlaybackQueueExample.java | Updates example to renamed add-to-queue API. |
| examples/data/library/SaveToLibraryExample.java | Updates example to renamed save-library-items API. |
| examples/data/library/RemoveFromLibraryExample.java | Updates example to renamed remove-library-items API. |
| examples/data/library/GetCurrentUsersSavedAlbumsExample.java | Updates example to renamed get-users-saved-albums API. |
| examples/data/follow/UnfollowPlaylistExample.java | Updates example to non-legacy package/signature. |
| examples/data/follow/GetUsersFollowedArtistsExample.java | Updates example to renamed get followed API. |
| examples/data/follow/FollowPlaylistExample.java | Updates example to non-legacy package/signature. |
| examples/data/follow/CheckUsersFollowPlaylistExample.java | Updates example to renamed check-if-user-follows-playlist API. |
| examples/data/browse/miscellaneous/GetAvailableGenreSeedsExample.java | Updates example to renamed recommendation genres API. |
| examples/data/browse/GetListOfFeaturedPlaylistsExample.java | Updates example to renamed featured playlists API. |
| examples/data/browse/GetCategorysPlaylistsExample.java | Updates example to renamed category playlists API. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
aeccc2f to
1db7f72
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the Java Spotify Web API wrapper to match Spotify’s current OpenAPI schema, including renamed request types, updated endpoints/paths, newly added endpoints, and refreshed fixtures/tests to validate request URIs and response parsing.
Changes:
- Add/rename multiple request classes (e.g.,
SearchRequest, queue/playback, playlists “items” paths, audiobooks/chapters, users profile). - Introduce new request/response fixtures and JUnit tests for newly synced endpoints.
- Mark several endpoints as
@Deprecatedto reflect deprecations in the upstream specification.
Reviewed changes
Copilot reviewed 202 out of 219 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/se/michaelthelin/spotify/requests/data/users_profile/GetUsersProfileRequestTest.java | New test for users profile request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralTracksRequestTest.java | New test for several-tracks request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralAudioFeaturesRequestTest.java | Update test to renamed request + updated fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioFeaturesRequestTest.java | Update test to renamed request + updated fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioAnalysisRequestTest.java | Update test to renamed request + updated fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/shows/GetMultipleShowsRequestTest.java | New test for multiple-shows request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/search/SearchRequestTest.java | Update test to renamed search request + updated fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/UploadCustomPlaylistCoverRequestTest.java | Update test to renamed upload-cover request |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/ReplacePlaylistsItemsRequestTest.java | Update tests for playlists “/items” path |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/ReorderPlaylistsItemsRequestTest.java | Update tests for playlists “/items” path |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/RemoveItemsPlaylistRequestTest.java | Update test to renamed remove-items request + “/items” path |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistsItemsRequestTest.java | Update tests/fixtures for playlists “/items” path + href expectations |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistCoverRequestTest.java | Update test to renamed get-cover request |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetListUsersPlaylistsRequestTest.java | New test for listing user playlists |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/CreatePlaylistForUserRequestTest.java | New test for create-playlist request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/ChangePlaylistDetailsRequestTest.java | Update test to renamed change-details request |
| src/test/java/se/michaelthelin/spotify/requests/data/playlists/AddItemsToPlaylistRequestTest.java | Update tests for playlists “/items” path |
| src/test/java/se/michaelthelin/spotify/requests/data/player/StartUsersPlaybackRequestTest.java | Update test to renamed start-playback request |
| src/test/java/se/michaelthelin/spotify/requests/data/player/StartUsersPlaybackRequestNumericTest.java | Update numeric-type-preservation test to renamed request |
| src/test/java/se/michaelthelin/spotify/requests/data/player/GetRecentlyPlayedRequestTest.java | Update test to renamed recently-played request |
| src/test/java/se/michaelthelin/spotify/requests/data/player/GetQueueRequestTest.java | Update test to renamed queue request + updated fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/player/AddToQueueRequestTest.java | Update test to renamed add-to-queue request |
| src/test/java/se/michaelthelin/spotify/requests/data/markets/GetAvailableMarketsRequestTest.java | New test for available-markets request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveTracksForCurrentUserRequestTest.java | New test for save-tracks request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveShowsForCurrentUserRequestTest.java | New test for save-shows request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveLibraryItemsRequestTest.java | Update test to renamed save-library-items request |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveEpisodesForCurrentUserRequestTest.java | New test for save-episodes request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveAudiobooksForCurrentUserRequestTest.java | New test for save-audiobooks request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/SaveAlbumsForCurrentUserRequestTest.java | New test for save-albums request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveTracksForCurrentUserRequestTest.java | New test for remove-tracks request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveShowsForCurrentUserRequestTest.java | New test for remove-shows request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveLibraryItemsRequestTest.java | Update test to renamed remove-library-items request |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveEpisodesForCurrentUserRequestTest.java | Replace legacy follow test content with remove-episodes test |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveAudiobooksForCurrentUserRequestTest.java | New test for remove-audiobooks request URI + empty response handling |
| src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveAlbumsForCurrentUserRequestTest.java | Replace legacy follow test content with remove-albums test |
| src/test/java/se/michaelthelin/spotify/requests/data/library/GetUsersSavedAudiobooksRequestTest.java | New test for saved-audiobooks paging parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/library/GetUsersSavedAlbumsRequestTest.java | Update test to renamed saved-albums request |
| src/test/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedAudiobooksRequestTest.java | New test for saved-audiobooks “contains” parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/library/CheckLibraryContainsRequestTest.java | New test for generic library-contains endpoint |
| src/test/java/se/michaelthelin/spotify/requests/data/follow/GetFollowedRequestTest.java | Update test to renamed “get followed” request + fixture paths |
| src/test/java/se/michaelthelin/spotify/requests/data/follow/CheckIfUserFollowsPlaylistRequestTest.java | Update test to renamed request + fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/episodes/GetMultipleEpisodesRequestTest.java | New test for multiple-episodes request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/chapters/GetSeveralChaptersRequestTest.java | New test for several-chapters request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/chapters/GetChapterRequestTest.java | New test for chapter request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/miscellaneous/GetRecommendationGenresRequestTest.java | Update test to renamed recommendation-genres request |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetNewReleasesRequestTest.java | New test for new-releases request URI + paging parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetFeaturedPlaylistsRequestTest.java | Update test to renamed featured-playlists request |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategorysPlaylistRequestTest.java | Update test to renamed category-playlists request + fixture path |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategoryRequestTest.java | New test for category request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategoriesRequestTest.java | New test for categories request URI + paging parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/audiobooks/GetMultipleAudiobooksRequestTest.java | New test for multiple-audiobooks request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/audiobooks/GetAudiobookRequestTest.java | New test for audiobook request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/audiobooks/GetAudiobookChaptersRequestTest.java | New test for audiobook-chapters request URI + paging parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/artists/GetMultipleArtistsRequestTest.java | New test for multiple-artists request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/artists/GetArtistsTopTracksRequestTest.java | New test for artist-top-tracks request URI + parsing |
| src/test/java/se/michaelthelin/spotify/requests/data/albums/GetMultipleAlbumsRequestTest.java | New test for multiple-albums request URI + parsing |
| src/test/java/se/michaelthelin/spotify/ITest.java | Add new test constants for audiobook/chapter IDs |
| src/test/fixtures/requests/data/users_profile/GetUsersProfileRequest.json | New fixture for users profile response |
| src/test/fixtures/requests/data/tracks/GetSeveralTracksRequest.json | New fixture for several-tracks response |
| src/test/fixtures/requests/data/tracks/GetAudioFeaturesRequest.json | New fixture for audio-features response |
| src/test/fixtures/requests/data/tracks/GetSeveralAudioFeaturesRequest.json | Fixture for several-audio-features response |
| src/test/fixtures/requests/data/shows/GetMultipleShowsRequest.json | New fixture for multiple-shows response |
| src/test/fixtures/requests/data/playlists/RemoveItemsPlaylistRequest.json | New fixture for remove-items snapshot response |
| src/test/fixtures/requests/data/playlists/GetPlaylistsItemsRequest.json | Update fixture href for playlists “/items” |
| src/test/fixtures/requests/data/playlists/GetPlaylistsItemsRequest_Episode.json | Update fixture href for playlists “/items” episode case |
| src/test/fixtures/requests/data/playlists/GetPlaylistCoverRequest.json | New fixture for playlist cover images |
| src/test/fixtures/requests/data/playlists/GetListUsersPlaylistsRequest.json | New fixture for list-user-playlists response |
| src/test/fixtures/requests/data/playlists/GetListUsersPlaylistsRequest_UserWith$.json | New fixture for user IDs containing $ |
| src/test/fixtures/requests/data/playlists/CreatePlaylistForUserRequest.json | New fixture for create-playlist response |
| src/test/fixtures/requests/data/markets/GetAvailableMarketsRequest.json | New fixture for markets list response |
| src/test/fixtures/requests/data/library/SaveTracksForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/SaveShowsForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/SaveEpisodesForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/SaveAudiobooksForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/SaveAlbumsForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/RemoveTracksForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/RemoveShowsForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/RemoveEpisodesForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/RemoveAudiobooksForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/RemoveAlbumsForCurrentUserRequest.json | New empty-body fixture |
| src/test/fixtures/requests/data/library/GetUsersSavedAudiobooksRequest.json | New fixture for saved-audiobooks paging response |
| src/test/fixtures/requests/data/library/CheckUsersSavedAudiobooksRequest.json | New fixture for audiobooks contains response |
| src/test/fixtures/requests/data/library/CheckLibraryContainsRequest.json | New fixture for generic library contains response |
| src/test/fixtures/requests/data/follow/GetFollowedRequest.json | New/renamed fixture for followed artists paging response |
| src/test/fixtures/requests/data/follow/GetFollowedRequest_None.json | New/renamed fixture for empty followed response |
| src/test/fixtures/requests/data/follow/CheckIfUserFollowsPlaylistRequest.json | New/renamed fixture for playlist-follow check |
| src/test/fixtures/requests/data/episodes/GetMultipleEpisodesRequest.json | New fixture for multiple-episodes response |
| src/test/fixtures/requests/data/chapters/GetSeveralChaptersRequest.json | New fixture for several-chapters response |
| src/test/fixtures/requests/data/chapters/GetChapterRequest.json | New fixture for chapter response |
| src/test/fixtures/requests/data/browse/GetNewReleasesRequest.json | New fixture for new-releases paging response |
| src/test/fixtures/requests/data/browse/GetCategoryRequest.json | New fixture for category response |
| src/test/fixtures/requests/data/browse/GetCategoriesRequest.json | New fixture for categories paging response |
| src/test/fixtures/requests/data/audiobooks/GetMultipleAudiobooksRequest.json | New fixture for multiple-audiobooks response |
| src/test/fixtures/requests/data/audiobooks/GetAudiobookRequest.json | New fixture for audiobook response |
| src/test/fixtures/requests/data/audiobooks/GetAudiobookChaptersRequest.json | New fixture for audiobook chapters paging response |
| src/test/fixtures/requests/data/artists/GetMultipleArtistsRequest.json | New fixture for multiple-artists response |
| src/test/fixtures/requests/data/artists/GetArtistsTopTracksRequest.json | New fixture for artist-top-tracks response |
| src/test/fixtures/requests/data/albums/GetMultipleAlbumsRequest.json | New fixture for multiple-albums response |
| src/test/fixtures/requests/data/albums/GetMultipleAlbumsRequest_None.json | New fixture for empty multiple-albums response |
| src/main/java/se/michaelthelin/spotify/requests/data/users_profile/GetUsersProfileRequest.java | Add request class for users profile endpoint (deprecated) |
| src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralAudioFeaturesRequest.java | Rename request class + mark deprecated |
| src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioFeaturesRequest.java | Rename request class + mark deprecated |
| src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioAnalysisRequest.java | Rename request class + mark deprecated |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchTracksRequest.java | Fix javadoc return type reference after search rename |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchShowsRequest.java | Fix javadoc return type reference after search rename |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchPlaylistsRequest.java | Fix javadoc return type reference after search rename |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchEpisodesRequest.java | Fix javadoc return type reference after search rename |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchArtistsRequest.java | Fix javadoc return type reference after search rename |
| src/main/java/se/michaelthelin/spotify/requests/data/search/simplified/SearchAlbumsRequest.java | Fix javadoc return type reference after search rename |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/UploadCustomPlaylistCoverRequest.java | Rename upload playlist cover request type |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/ReplacePlaylistsItemsRequest.java | Update endpoint path from /tracks to /items |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/ReorderPlaylistsItemsRequest.java | Update endpoint path from /tracks to /items |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistsItemsRequest.java | Update endpoint path from /tracks to /items |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistCoverRequest.java | Rename playlist cover request type |
| src/main/java/se/michaelthelin/spotify/requests/data/playlists/AddItemsToPlaylistRequest.java | Update endpoint path from /tracks to /items |
| src/main/java/se/michaelthelin/spotify/requests/data/player/GetQueueRequest.java | Rename queue request type |
| src/main/java/se/michaelthelin/spotify/requests/data/player/AddToQueueRequest.java | Rename add-to-queue request type |
| src/main/java/se/michaelthelin/spotify/requests/data/markets/GetAvailableMarketsRequest.java | Add request class for available markets (deprecated) |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveTracksForCurrentUserRequest.java | Add deprecated save-tracks request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveShowsForCurrentUserRequest.java | Add deprecated save-shows request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveLibraryItemsRequest.java | Rename save-to-library request type |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveEpisodesForCurrentUserRequest.java | Add deprecated save-episodes request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveAudiobooksForCurrentUserRequest.java | Add save-audiobooks request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/SaveAlbumsForCurrentUserRequest.java | Add deprecated save-albums request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveTracksForCurrentUserRequest.java | Add deprecated remove-tracks request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveShowsForCurrentUserRequest.java | Add deprecated remove-shows request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveLibraryItemsRequest.java | Rename remove-from-library request type |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveEpisodesForCurrentUserRequest.java | Add deprecated remove-episodes request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveAudiobooksForCurrentUserRequest.java | Add remove-audiobooks request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveAlbumsForCurrentUserRequest.java | Add deprecated remove-albums request mapping |
| src/main/java/se/michaelthelin/spotify/requests/data/library/GetUsersSavedEpisodesRequest.java | Fix javadoc builder reference |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedTracksRequest.java | Mark deprecated in favor of generic library contains |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedShowsRequest.java | Mark deprecated in favor of generic library contains |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedEpisodesRequest.java | Mark deprecated in favor of generic library contains |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedAudiobooksRequest.java | Add deprecated audiobooks contains request |
| src/main/java/se/michaelthelin/spotify/requests/data/library/CheckUsersSavedAlbumsRequest.java | Mark deprecated in favor of generic library contains |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/UnfollowPlaylistRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/UnfollowArtistsOrUsersRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/GetFollowedRequest.java | Rename followed-artists request type |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/FollowPlaylistRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/FollowArtistsOrUsersRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/requests/data/follow/CheckCurrentUserFollowsArtistsOrUsersRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/requests/data/browse/miscellaneous/GetRecommendationGenresRequest.java | Rename genre-seeds request type + mark deprecated |
| src/main/java/se/michaelthelin/spotify/requests/data/browse/GetRecommendationsRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/requests/data/artists/GetMultipleArtistsRequest.java | Add request for multiple artists (deprecated) |
| src/main/java/se/michaelthelin/spotify/requests/data/artists/GetArtistsRelatedArtistsRequest.java | Mark deprecated per spec |
| src/main/java/se/michaelthelin/spotify/model_objects/specification/PlaylistSimplified.java | Update import/javadoc reference for renamed remove-items request |
| src/main/java/se/michaelthelin/spotify/model_objects/specification/Playlist.java | Update import/javadoc reference for renamed remove-items request |
| src/main/java/se/michaelthelin/spotify/model_objects/special/SearchResult.java | Update imports/javadoc to renamed SearchRequest |
| src/main/java/se/michaelthelin/spotify/model_objects/interfaces/IPlaylist.java | Update javadoc reference for renamed remove-items request |
| src/main/java/se/michaelthelin/spotify/enums/ModelObjectType.java | Add AUDIOBOOK enum value |
| examples/data/tracks/GetAudioFeaturesForTrackExample.java | Update example to renamed audio-features request/method |
| examples/data/tracks/GetAudioFeaturesForSeveralTracksExample.java | Update example to renamed several-audio-features request/method |
| examples/data/tracks/GetAudioAnalysisForTrackExample.java | Update example to renamed audio-analysis request/method |
| examples/data/search/SearchItemExample.java | Update example to renamed search request/method |
| examples/data/playlists/RemoveItemsFromPlaylistExample.java | Update example to renamed remove-items request/method |
| examples/data/playlists/GetPlaylistCoverImageExample.java | Update example to renamed get-cover request/method |
| examples/data/playlists/ChangePlaylistsDetailsExample.java | Update example to renamed change-details request/method |
| examples/data/player/StartResumeUsersPlaybackExample.java | Update example to renamed start-playback request/method |
| examples/data/player/GetTheUsersQueueExample.java | Update example to renamed queue request/method |
| examples/data/player/GetCurrentUsersRecentlyPlayedTracksExample.java | Update example to renamed recently-played request/method |
| examples/data/player/AddItemToUsersPlaybackQueueExample.java | Update example to renamed add-to-queue request/method |
| examples/data/library/SaveToLibraryExample.java | Update example to renamed save-library-items request/method |
| examples/data/library/RemoveFromLibraryExample.java | Update example to renamed remove-library-items request/method |
| examples/data/library/GetCurrentUsersSavedAlbumsExample.java | Update example to renamed saved-albums request/method |
| examples/data/follow/UnfollowPlaylistExample.java | Update example import + updated unfollow signature |
| examples/data/follow/GetUsersFollowedArtistsExample.java | Update example to renamed get-followed request/method |
| examples/data/follow/FollowPlaylistExample.java | Update example import + updated follow signature |
| examples/data/follow/CheckUsersFollowPlaylistExample.java | Update example to renamed check-if-user-follows-playlist request |
| examples/data/browse/miscellaneous/GetAvailableGenreSeedsExample.java | Update example to renamed recommendation-genres request/method |
| examples/data/browse/GetListOfFeaturedPlaylistsExample.java | Update example to renamed featured-playlists request/method |
| examples/data/browse/GetCategorysPlaylistsExample.java | Update example to renamed category-playlists request/method |
Comments suppressed due to low confidence (2)
src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetAudioFeaturesRequest.java:62
- Javadoc has an extra period ("Builder}.."), likely a typo; please remove the duplicate punctuation.
src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralAudioFeaturesRequestTest.java:19 - Test inconsistency: the request is built with 2 track IDs, but the mocked fixture/expectation asserts 3 audio features returned. In the real API the response array should correspond to the requested IDs (often same length, with nulls for unknown IDs). Consider updating the request to include 3 IDs (or adjusting the fixture/assertion to 2) so the test reflects realistic behavior.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1db7f72 to
35470cb
Compare
e4558ac to
8cfa25a
Compare
8cfa25a to
671db74
Compare
671db74 to
022cd49
Compare
This pull request ensures that this api wrapper project is fully in sync with Spotify's OpenAPI specification available under https://developer.spotify.com/reference/web-api/open-api-schema.yaml.
This readds previously removed endpoints that are deprecated because some older clients may still be granted permissions to access those endpoints.
Everything below is relative to
beta(10.0.0-RC3), so endpoints that 10.0.0-RC3 dropped show up here as additions.Request classes go from 76 to 111,
SpotifyApirequest builder methods from 90 to 126.Breaking changes
Request packages were reorganized to match the resource grouping of the specification.
browse,follow,personalizationandusers_profileare gone,albums,audiobooks,categories,chapters,episodes,genres,markets,shows,tracksandusersnow hold the requests that belong to them.Playlist item endpoints moved from
/v1/playlists/{playlist_id}/tracksto/v1/playlists/{playlist_id}/items.The old path stays reachable through new
*Deprecatedrequest classes (AddItemsToPlaylistDeprecatedRequest,GetPlaylistItemsDeprecatedRequest,RemovePlaylistItemsDeprecatedRequest,UpdatePlaylistsItemsReorderDeprecatedRequest,UpdatePlaylistsItemsReplaceDeprecatedRequest).The
follow.legacypackage is removed, sofollowPlaylist(String owner_id, String playlist_id, boolean public_)andunfollowPlaylist(String owner_id, String playlist_id)are gone without a replacement that takes an owner id.The two-argument and one-argument overloads remain.
checkUsersFollowPlaylist(String owner_id, String playlist_id, String[] ids)is gone for the same reason, the method is nowcheckIfUserFollowsPlaylist(String playlist_id, String[] ids).saveToLibrary(JsonArray uris)andremoveFromLibrary(JsonArray uris)becomesaveItemsToLibrary(String uris)andremoveItemsFromLibrary(String uris), so the parameter type changes as well as the name.Model object getters were renamed to follow the property names of the specification.
Track,TrackSimplified,ITrackgetIsExplicit()getExplicit()Playlist,PlaylistSimplified,IPlaylistgetIsPublicAccess()getPublic()Episode,EpisodeSimplified,IEpisodegetPlayable()getIsPlayable()SavedEpisodemoves frommodel_objects.miscellaneoustomodel_objects.specification.IArtistTrackModelObjectmoves fromrequests.data.personalization.interfacestorequests.data.users.interfaces.Renamed request classes and their
SpotifyApimethods (53)SpotifyApimethodalbums/GetAlbumsTracksRequestalbums/GetAlbumTracksRequestgetAlbumsTrackstogetAlbumTracksbrowse/GetCategorysPlaylistsRequestplaylists/GetCategoryPlaylistsRequestgetCategorysPlayliststogetCategoryPlaylistsbrowse/GetListOfFeaturedPlaylistsRequestplaylists/GetFeaturedPlaylistsRequestgetListOfFeaturedPlayliststogetFeaturedPlaylistsbrowse/GetRecommendationsRequesttracks/GetRecommendationsRequestgetRecommendations(unchanged)browse/miscellaneous/GetAvailableGenreSeedsRequestgenres/GetRecommendationGenresRequestgetAvailableGenreSeedstogetRecommendationGenresfollow/CheckCurrentUserFollowsArtistsOrUsersRequestusers/CheckCurrentUserFollowsArtistsOrUsersRequestcheckCurrentUserFollowsArtistsOrUsers(unchanged)follow/CheckUsersFollowPlaylistRequestusers/CheckIfUserFollowsPlaylistRequestcheckUsersFollowPlaylisttocheckIfUserFollowsPlaylistfollow/FollowArtistsOrUsersRequestusers/FollowArtistsOrUsersRequestfollowArtistsOrUsers(unchanged)follow/FollowPlaylistRequestusers/FollowPlaylistRequestfollowPlaylist(unchanged)follow/GetUsersFollowedArtistsRequestusers/GetFollowedArtistsRequestgetUsersFollowedArtiststogetFollowedArtistsfollow/UnfollowArtistsOrUsersRequestusers/UnfollowArtistsOrUsersRequestunfollowArtistsOrUsers(unchanged)follow/UnfollowPlaylistRequestusers/UnfollowPlaylistRequestunfollowPlaylist(unchanged)library/CheckUsersSavedAlbumsRequestalbums/CheckUsersSavedAlbumsRequestcheckUsersSavedAlbums(unchanged)library/CheckUsersSavedEpisodesRequestepisodes/CheckUsersSavedEpisodesRequestcheckUsersSavedEpisodes(unchanged)library/CheckUsersSavedShowsRequestshows/CheckUsersSavedShowsRequestcheckUsersSavedShows(unchanged)library/CheckUsersSavedTracksRequesttracks/CheckUsersSavedTracksRequestcheckUsersSavedTracks(unchanged)library/GetCurrentUsersSavedAlbumsRequestalbums/GetUsersSavedAlbumsRequestgetCurrentUsersSavedAlbumstogetUsersSavedAlbumslibrary/GetUsersSavedEpisodesRequestepisodes/GetUsersSavedEpisodesRequestgetUsersSavedEpisodes(unchanged)library/GetUsersSavedShowsRequestshows/GetUsersSavedShowsRequestgetUsersSavedShows(unchanged)library/GetUsersSavedTracksRequesttracks/GetUsersSavedTracksRequestgetUsersSavedTracks(unchanged)library/RemoveFromLibraryRequestlibrary/RemoveItemsFromLibraryRequestremoveFromLibrarytoremoveItemsFromLibrarylibrary/SaveToLibraryRequestlibrary/SaveItemsToLibraryRequestsaveToLibrarytosaveItemsToLibrarypersonalization/GetUsersTopArtistsAndTracksRequestusers/GetUsersTopArtistsAndTracksRequestgetUsersTopArtistsAndTracks(unchanged)personalization/simplified/GetUsersTopArtistsRequestusers/simplified/GetUsersTopArtistsRequestgetUsersTopArtists(unchanged)personalization/simplified/GetUsersTopTracksRequestusers/simplified/GetUsersTopTracksRequestgetUsersTopTracks(unchanged)player/AddItemToUsersPlaybackQueueRequestplayer/AddItemToPlaybackQueueRequestaddItemToUsersPlaybackQueuetoaddItemToPlaybackQueueplayer/GetCurrentUsersRecentlyPlayedTracksRequestplayer/GetRecentlyPlayedTracksRequestgetCurrentUsersRecentlyPlayedTrackstogetRecentlyPlayedTracksplayer/GetInformationAboutUsersCurrentPlaybackRequestplayer/GetPlaybackStateRequestgetInformationAboutUsersCurrentPlaybacktogetPlaybackStateplayer/GetTheUsersQueueRequestplayer/GetUsersQueueRequestgetTheUsersQueuetogetUsersQueueplayer/GetUsersAvailableDevicesRequestplayer/GetAvailableDevicesRequestgetUsersAvailableDevicestogetAvailableDevicesplayer/GetUsersCurrentlyPlayingTrackRequestplayer/GetCurrentlyPlayingTrackRequestgetUsersCurrentlyPlayingTracktogetCurrentlyPlayingTrackplayer/PauseUsersPlaybackRequestplayer/PausePlaybackRequestpauseUsersPlaybacktopausePlaybackplayer/SeekToPositionInCurrentlyPlayingTrackRequestplayer/SeekToPositionRequestseekToPositionInCurrentlyPlayingTracktoseekToPositionplayer/SetRepeatModeOnUsersPlaybackRequestplayer/SetRepeatModeRequestsetRepeatModeOnUsersPlaybacktosetRepeatModeplayer/SetVolumeForUsersPlaybackRequestplayer/SetPlaybackVolumeRequestsetVolumeForUsersPlaybacktosetPlaybackVolumeplayer/SkipUsersPlaybackToNextTrackRequestplayer/SkipToNextRequestskipUsersPlaybackToNextTracktoskipToNextplayer/SkipUsersPlaybackToPreviousTrackRequestplayer/SkipToPreviousRequestskipUsersPlaybackToPreviousTracktoskipToPreviousplayer/StartResumeUsersPlaybackRequestplayer/StartResumePlaybackRequeststartResumeUsersPlaybacktostartResumePlaybackplayer/ToggleShuffleForUsersPlaybackRequestplayer/TogglePlaybackShuffleRequesttoggleShuffleForUsersPlaybacktotogglePlaybackShuffleplayer/TransferUsersPlaybackRequestplayer/TransferPlaybackRequesttransferUsersPlaybacktotransferPlaybackplaylists/ChangePlaylistsDetailsRequestplaylists/ChangePlaylistDetailsRequestchangePlaylistsDetailstochangePlaylistDetailsplaylists/GetListOfCurrentUsersPlaylistsRequestplaylists/GetCurrentUsersPlaylistsRequestgetListOfCurrentUsersPlayliststogetCurrentUsersPlaylistsplaylists/GetPlaylistsItemsRequestplaylists/GetPlaylistItemsRequestgetPlaylistsItemstogetPlaylistItemsplaylists/RemoveItemsFromPlaylistRequestplaylists/RemovePlaylistItemsRequestremoveItemsFromPlaylisttoremovePlaylistItemsplaylists/ReorderPlaylistsItemsRequestplaylists/UpdatePlaylistsItemsReorderRequestreorderPlaylistsItemstoupdatePlaylistsItemsReorderplaylists/ReplacePlaylistsItemsRequestplaylists/UpdatePlaylistsItemsReplaceRequestreplacePlaylistsItemstoupdatePlaylistsItemsReplaceplaylists/UploadCustomPlaylistCoverImageRequestplaylists/AddCustomPlaylistCoverImageRequestuploadCustomPlaylistCoverImagetoaddCustomPlaylistCoverImagesearch/SearchItemRequestsearch/SearchForItemRequestsearchItemtosearchForItemshows/GetShowsEpisodesRequestshows/GetShowEpisodesRequestgetShowEpisodes(unchanged)tracks/GetAudioAnalysisForTrackRequesttracks/GetTracksAudioAnalysisRequestgetAudioAnalysisForTracktogetTracksAudioAnalysistracks/GetAudioFeaturesForSeveralTracksRequesttracks/GetSeveralTracksAudioFeaturesRequestgetAudioFeaturesForSeveralTrackstogetSeveralTracksAudioFeaturestracks/GetAudioFeaturesForTrackRequesttracks/GetTracksAudioFeaturesRequestgetAudioFeaturesForTracktogetTracksAudioFeaturesusers_profile/GetCurrentUsersProfileRequestusers/GetCurrentUsersProfileRequestgetCurrentUsersProfile(unchanged)New endpoints
Audiobooks and chapters are covered for the first time.
getAudiobook,getSeveralAudiobooks,getAudiobookChaptersgetUsersSavedAudiobooks,checkUsersSavedAudiobooks,saveAudiobooksForCurrentUser,removeAudiobooksForCurrentUsergetChapter,getSeveralChapterssearchAudiobooksOther additions:
getAvailableMarketsfor/v1/marketscheckUsersSavedItemsfor/v1/me/library/contains, next to the existing/v1/me/librarysave and remove requestsEndpoints restored after 10.0.0-RC3
These were reachable before 10.0.0-RC3 dropped them, some under a different name, and they come back marked
@Deprecated.getSeveralAlbums,getNewReleases,saveAlbumsForCurrentUser,removeAlbumsForCurrentUsergetSeveralArtists,getArtistsTopTracksgetSeveralEpisodes,saveEpisodesForCurrentUser,removeEpisodesForCurrentUsergetSeveralShows,saveShowsForCurrentUser,removeShowsForCurrentUsergetSeveralTracks,saveTracksForCurrentUser,removeUsersSavedTracksgetSeveralBrowseCategories,getSingleBrowseCategorygetUsersPlaylists,createPlaylistForUsergetUsersProfileNewly deprecated
17 endpoints that
betaalready ships now carry@Deprecatedbecause Spotify deprecated them.They keep working for clients whose credentials still have access.
getRecommendations,getRecommendationGenresgetTracksAudioFeatures,getSeveralTracksAudioFeatures,getTracksAudioAnalysisgetFeaturedPlaylists,getCategoryPlaylistsgetArtistsRelatedArtistscheckUsersSavedAlbums,checkUsersSavedEpisodes,checkUsersSavedShows,checkUsersSavedTracksfollowPlaylist,unfollowPlaylist,followArtistsOrUsers,unfollowArtistsOrUserscheckCurrentUserFollowsArtistsOrUsersgetArtistsAlbumsandcheckIfUserFollowsPlaylistwere already deprecated onbetaand stay that way.Across the whole wrapper 50 request classes now carry
@Deprecated, up from 2.None of them are scheduled for removal, they stay available for clients that can still reach them.
Model objects
New:
Audiobook,AudiobookSimplified,Chapter,ChapterSimplified,ChapterRestriction,Author,Narrator,ExplicitContentSettings.New fields on existing objects:
Album:label,totalTracksAlbumSimplified:isPlayableUser:accountId,country,email,product,followers,explicitContentSearchResult:audiobooksModelObjectType:AUDIOBOOKTests, examples and docs
38 new test classes and 35 new fixtures, plus 40 test classes and 27 fixtures renamed along with the requests they cover.
GetPlaylistsItemsRequestTestand thefollow.legacyFollowPlaylistRequestTestare removed with their subjects.Examples were moved into the new package layout, 13 new ones were added for the new endpoints, and both
README.mdfiles were regrouped to match.Deprecated entries are marked with a warning sign in the example lists, with a note that they stay available.