| CARVIEW |
spotify: Spotify Web API
library spotify
library spotify:spotify-servant
Modules
[Index] [Quick Jump]
library spotify:spotify-types
Downloads
- spotify-0.1.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson (>=2.1.0 && <2.2), base (>=4.16 && <5), base64-bytestring (>=1.2.1 && <1.3), bytestring (>=0.11.3 && <0.12), composition (>=1.0.2 && <1.1), containers (>=0.6.5 && <0.7), directory (>=1.3.6 && <1.4), exceptions (>=0.10 && <0.11), extra (>=1.7.12 && <1.8), filepath (>=1.4.2 && <1.5), http-api-data (>=0.4.3 && <0.6), http-client (>=0.7.13 && <0.8), http-client-tls (>=0.3.6 && <0.4), http-types (>=0.12.3 && <0.13), lucid (>=2.11 && <2.12), monad-loops (>=0.4.3 && <0.5), mtl (>=2.2.2 && <2.4), pretty-simple (>=4.1 && <4.2), servant (>=0.19 && <0.20), servant-client (>=0.19 && <0.20), servant-lucid (>=0.9 && <0.10), spotify, text (>=1.2.5 && <1.3 || >=2.0 && <2.1), time (>=1.11.1 && <1.13), transformers (>=0.5.6 && <0.7), unordered-containers (>=0.2.19 && <0.3) [details] |
| License | BSD-3-Clause |
| Author | George Thomas |
| Maintainer | George Thomas |
| Uploaded | by GeorgeThomas at 2023-06-29T23:10:20Z |
| Category | Music, Web |
| Home page | https://github.com/georgefst/spotify |
| Source repo | head: git clone git://github.com/georgefst/spotify.git |
| Distributions | |
| Executables | examples |
| Downloads | 160 total (9 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2023-06-30 [all 1 reports] |
Readme for spotify-0.1.0.1
[back to package description]Spotify Web API bindings for Haskell
Designed to be very high-level (eg. handling token refresh etc. automatically). Though it should be possible to expose more of the lower level functionality if anyone requests it. At the very least, the raw Servant encoding of the API is available in spotify-servant, on which the main library depends.
Designed for use with lenses and/or modern record extensions (OverloadedRecordDot etc.), e.g. to work around duplicated identifiers. This allows us to mirror the Spotify API in a methodical way without being too verbose.
All requests take place inside a monad implementing MonadSpotify. In particular, this abstracts away authentication, meaning that we don't need to explicitly pass tokens around. A concrete monad Spotify is provided, though you'll often want to roll your own. There is also an instance MonadSpotify IO, which caches authentication data to disk, so one should be careful about security. It also creates a new connection Manager for every request, which can be expensive. Thus a State-like monad is preferred for serious code. Nonetheless, being able to run the functions directly in IO can be very convenient, especially from GHCI.