Где лучше всего хранить ограничения в API, используя mongodb - PullRequest
0 голосов
/ 25 августа 2010

Я пишу API, который использует MongoDB в качестве внутреннего хранилища.Допустим, API позволяет потребителю запрашивать предстоящие события.Допустим, некоторые события являются частными и для текущего пользователя не должны появляться в результатах.Должен ли я:

  1. Реализовать это на уровне API.Код API, будет отвечать за эти проверки.Преимущество заключается в том, что если я изменю механизмы хранения (маловероятно), бизнес-код останется без изменений.
  2. Реализуйте это как хранимую функцию JavaScript.

1 Ответ

0 голосов
/ 25 августа 2010

На уровне API по той причине, которую вы упомянули: вы независимы от основного механизма хранения вашего приложения.

Хорошим руководящим принципом является постоянство невежества: сделает вашу бизнес-логику как можно меньше осведомленной о механизме хранения . Это подразумевает, что бизнес-логика также не должна находиться на вашем уровне хранения. Поэтому хранимые процедуры или хранимые функции JavaScript не должны содержать бизнес-логику. Некоторые преимущества этого:

  • Вы можете поменять базовую базу данных с минимальными усилиями и без необходимости повторной реализации вашей бизнес-логики в новой базе данных.
  • Вся ваша бизнес-логика содержится на уровне приложения, что облегчает понимание и отладку базы кода.

Единственные функции, которые вы должны хранить в MongoDB, это «служебные» функции; функции, которые упрощают обычные операции, такие как строковые операции, но никак не связаны с вашей бизнес-логикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...