Положить книгу в цикл

Тома одной серии: голоса героев и словарь общие.

PUT /books/{book_id}/series · всё

В цикле голоса героев переходят из тома в том (если книга ещё не озвучена), а правила ударений книги действуют во всех томах. Пустое тело {} — убрать книгу из цикла.

Параметры пути

Параметр Что это
book_id Id книги

Тело запроса

JSON, заголовок content-type: application/json.

Поле Тип Обязательно Что это
series_id строка нет Существующий цикл
title строка нет Или новый цикл по названию
no число нет Номер тома (по умолчанию — следующий)
carry true/false нет Взять голоса героев из других томов

Что в ответе

Поле Что это
series Цикл и его тома
carried Герои, получившие голоса из других томов
same_no Том с тем же номером, если есть
curl -X PUT "https://golosar-kniga.tech/api/v1/books/$BOOK_ID/series" \
  -H "x-api-key: $KEY" \
  -H "content-type: application/json" \
  -d '{"title": "Сад", "no": 1}'
import os, requests

API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}
book_id = "01a134d0-dd73-77be-aa8d-0944ffb2b5e3"

r = requests.put(f"{API}/books/{book_id}/series", headers=H, json={"title": "Сад", "no": 1})
r.raise_for_status()
print(r.json())
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY, "content-type": "application/json" };
const bookId = "01a134d0-dd73-77be-aa8d-0944ffb2b5e3";

const r = await fetch(`${API}/books/${bookId}/series`, { method: "PUT", headers: H, body: JSON.stringify({"title": "Сад", "no": 1}) });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());

json Ответ 200 { "series": { "id": "01a134d0-e768-79a0-b295-7652d50df60a", "title": "Сад", "no": 1, "total": 1, "volumes": [ { "id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3", "title": "Вечер в саду", "no": 1 } ] }, "carried": [], "can_carry": [], "same_no": null }