WEB API и BL отношения - PullRequest
       6

WEB API и BL отношения

0 голосов
/ 14 декабря 2018

Моя структура проекта - клиент <=> Web API <=> BL <=> DAL (репозиторий) <=> DB.

Имеет ли смысл, что один API будет знать много BL?Это означает, что в одном методе API он будет вызывать X_BL, а в другом методе, в том же классе API он будет вызывать Y_BL?Если это имеет смысл, не могли бы вы привести пример?

Или это всегда должно быть отношение 1: 1, чтобы каждый контроллер API вызывал свой BL, например: CustomersAPI всегда будет вызывать CustomersBL,и ProductsAPI всегда будут звонить в ProductsBL.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

По моему мнению, ответ зависит , есть много вопросов, на которые нужно ответить в первую очередь

  1. Для чего вы создаете API?
  2. Нужно ли вам следовать шаблонам архитектурного проектирования, которыми владеют пользователи API (например, MobileApp, WebApp)?
  3. Или вы просто хотите создать API, который предоставляет данные только в том виде, в котором вы сказали, в соотношении 1: 1, так что остальныеприложение должно следовать шаблонам архитектурного проектирования, которые вы создаете?
  4. Где вы сосредоточены на обработке данных, на стороне клиента или на стороне сервера?
  5. Каковы пределы объема работы API и его пользователей?

По моему опыту, если вы хотите создать масштабируемый REST API , ваш контроллер должен иметь возможность для доступа к любому BLL (Бизнес-логика), когда это необходимо.BLL = BL (в вашем случае)

Например:

http://localhost/customers/15

Контроллеру клиентов требуется только 1 BLL (CustomerBLL), чтобы найти клиента с идентификатором 15, а затем вернуть результат.Как вы сказали, отношение 1: 1.

В другом случае вам потребуется более 1 BLL.

Например:

http://localhost/customers/15/products

Требуется контроллер клиентадругой BLL (ProductsBLL), чтобы найти любые продукты, относящиеся к клиентам с идентификатором 15, а затем вернуть результат.

0 голосов
/ 14 декабря 2018

Абсолютно логично, API часто требуют нескольких частей бизнес-логики для решения конкретной проблемы.Например, ваш CustomersAPI может общаться с CustomersBL, но также может общаться с UsersBL для получения контекста авторизации (какие клиенты могут быть возвращены) или с CRM BL при выполнении действий.

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