Ir al contenido

API de bibliotecas

Todos los endpoints requieren autenticación. Cada tipo de biblioteca sigue el mismo patrón CRUD bajo /api/v1/libraries/{type}.

Todos los tipos de biblioteca admiten:

MétodoRutaDescripción
GET/v1/libraries/{type}Listar elementos
POST/v1/libraries/{type}Crear un elemento
GET/v1/libraries/{type}/{id}Obtener un solo elemento
PUT/v1/libraries/{type}/{id}Actualizar un elemento
DELETE/v1/libraries/{type}/{id}Eliminar un elemento

Sustituye {type} por uno de: music, books, movies, games, links, quotes, recipes, plants. Todos los elementos comparten indicadores comunes: rating (1–5), wishlist, cover_path, link, genres[] y (donde esté disponible) tags[].

MétodoRutaDescripción
GET/v1/libraries/covers/{type}/{fileName}Servir una imagen de portada (type: music/books/movies/games/quotes/recipes/links/plants)
OPTIONS/v1/libraries/covers/{type}/{fileName}Preflight CORS

Endpoints específicos de la biblioteca:

MétodoRutaDescripción
GET/v1/libraries/music/recommend/{type}Recomendar (favorito/sin valorar/aleatorio/nuevo)
GET/v1/libraries/music/releasesNuevos lanzamientos de Deezer de tus artistas favoritos
GET/v1/libraries/music/search/{service}/{query}Buscar en Deezer/Discogs
POST/v1/libraries/music/import/{service}Importar un álbum por URL (deezer/discogs)
GET/POST/PUT/DELETE/v1/libraries/music/genresCRUD de géneros

Campos: title, artist, type (album/single/compilation), format (vinyl/CD/digital/cassette), condition, acquired_where, additional_info, publication_year.

MétodoRutaDescripción
GET/v1/libraries/books/recommend/{type}Recomendar (favorito/sin valorar/aleatorio/nuevo)
GET/v1/libraries/books/releasesNuevos lanzamientos de Hardcover de tus autores favoritos
GET/v1/libraries/books/search/{service}/{query}Buscar en Hardcover/Goodreads
POST/v1/libraries/books/import/{service}Importar un libro por URL (hardcover/goodreads)
GET/POST/PUT/DELETE/v1/libraries/books/genresCRUD de géneros

Campos: title, author, series, volume, pages, current_page, lent_to, is_where, summary, started_at, finished_at, publication_year.

MétodoRutaDescripción
GET/v1/libraries/movies/search/{service}/{title}Buscar en TMDB
POST/v1/libraries/movies/import/{service}Importar una película por URL (imdb)
GET/v1/libraries/movies/releasesNuevos estrenos
GET/v1/libraries/movies/{movie}/trailersTrailers (claves de YouTube de TMDB)
GET/POST/PUT/DELETE/v1/libraries/movies/genresCRUD de géneros

Campos: title, category (movie/series), publication_year, started_at, finished_at.

MétodoRutaDescripción
GET/v1/libraries/games/search/{service}/{query}Buscar en Steam/BGG
POST/v1/libraries/games/import/{service}Importar un juego por URL (steam/bgg)
GET/POST/PUT/DELETE/v1/libraries/games/genresCRUD de géneros

Campos: title, platform (pc/playstation/xbox/nintendo/mobile/boardgame/other), developer, publisher, playtime_hours, completed, publication_year.

MétodoRutaDescripción
GET/v1/libraries/links/newestEnlaces más recientes
GET/POST/PUT/DELETE/v1/libraries/links/categoriesCRUD de categorías de enlaces

Campos: title, url, is_favorite, cover_path, category_id.

MétodoRutaDescripción
GET/v1/libraries/quotes/randomCita aleatoria

Campos: quote, author, source, summary.

MétodoRutaDescripción
POST/v1/libraries/recipes/import/{service}Importar una receta por URL (chefkoch)

Campos: title, type (breakfast/lunch/dinner/snack/dessert/drink/other), calories, time_to_make, servings, description, ingredients[] ({name, amount, unit}), steps[], rating.

MétodoRutaDescripción
POST/v1/libraries/plants/{plant}/coverSubir una imagen de portada (multipart)

Campos: name, latin_name, location (indoor/outdoor/both), sunlight (full_sun/partial_sun/indirect/shade), current_size, max_size, acquired_at, winter_hardy, instructions.