Vapor - получить модель из HTML

Я изучаю Vapor и застрял на правильном способе взаимодействия с сервером. Итак, вот идея того, что я делаю ...

Вы загружаете XML-файл на сервер, он обрабатывает его, превращает его в большой список объектов модели и возвращает список объектов json. Используя лист, я заполняю модели в виде таблицы. пример:

 #loop(objects, "object") {
      <tr>
        <td>#(object.id)</td>
        <td>#(object.name)</td>
      </tr>
    }

Это все работает файл. Вот где я застрял. В верхней части моего табличного представления у меня есть несколько кнопок, которые будут выполнять действия с массивом объектов. то есть: пакетное переименование объектов или применение к ним какой-то логики. Затем я хочу, чтобы функциональность загружала список объектов модели в различных форматах.

Я хочу, чтобы вся эта логика жила на моем паровом сервере. Я заблудился в том, как передавать этот очень большой список взад и вперед с помощью сервера Vapor. Должен ли сервер хранить список объектов для текущего веб-сеанса? Я изучал возможность использования Javascript в HTML, но мне нужно было затем проанализировать DOM для создания объектов моей модели. В этот момент в парах ничего бы не происходило. (Некоторые из этих задач потребуют значительных ресурсов сервера.

Я искал свободный язык, но тогда вопрос был в том, буду ли я иметь базу данных для текущего сеанса и удалить ее, когда закончите? Беспокоит ли меня эта концепция проблемы с памятью? Я бы подумал, что когда вы загружаете XML, он создает идентификатор сеанса, и все ваши запросы основаны на нем. Тогда в какой-то момент срок действия ID истечет. Это все догадки, что лучше всего сработает.

Есть идеи о том, как лучше всего манипулировать объектами модели пара?

Спасибо!


person JoeBayLD    schedule 05.09.2017    source источник


Ответы (1)


Я бы подумал, что когда вы загружаете XML, он создает идентификатор сеанса, и все ваши запросы основаны на нем. Тогда в какой-то момент срок действия ID истечет.

Бинго. Если вы уверены, что хотите, чтобы эта обработка происходила на стороне сервера, то вы уже ответили на свой вопрос. У вас должна быть одна таблица базы данных, в которой хранятся объекты модели вместе со случайным идентификатором сеанса (которым можно управлять с помощью Vapor с помощью SessionsMiddleware).

Когда ваш пользователь завершит обработку своих моделей, вы удалите все объекты с их идентификаторами сеанса. Вам также следует регулярно запускать запланированное задание, которое удаляет модели, принадлежащие просроченным сеансам.

Если вы решите реализовать аутентификацию пользователя, вы можете использовать идентификатор пользователя вместо идентификатора сеанса.

person tobygriffin    schedule 27.11.2017