У меня есть серверное приложение с Vapor 3, я настроил три модели Book, Author, Publisher, относительные маршрутизаторы и контроллеры с CRUD и связями (у Author и Publisher есть родственные отношения с книгой). Все было бы хорошо, если бы не входящие данные: Json, который я получаю, имеет другую структуру данных, где издатели и авторы хранятся в массивах внутри книги.
Я не могу декодировать в Book.self, потому что Я бы потерял данные, относящиеся к издателям и авторам, поэтому я создал BookTotal, который не представлен в базе данных (нет миграции), поэтому я мог бы
req.content.decode(BookTotal.self).flatMap
На этом этапе я бы нравится вызывать функции сохранения или обновления на контроллерах Publisher и Author, передавая массив BookTotal.Publisher и BookTotal.Author.
Но пока я могу получить доступ к методам с помощью чего-то вроде
`PublisherController.Save()`
Или
let client = req.make(Client.self)
let response = client(“path/for/the/router”)
Я не знаю, как передать им данные. Методы CRUD внутри контроллеров имеют параметр Request в качестве параметра, но я не знаю, как его создать.
let newReq = Request()
newReq.content = BookTotal.Author
Было бы моим предположением, но Request хочет контейнер, а я не знаю, как я должен go об этом. Я искал вокруг, но не смог найти ни одного примера / учебника по этому вопросу. Я даже на правильном пути с этим?