Разделение проблем для API или сервиса, принимающего фильтры запросов

#node.js #design-patterns #software-design #separation-of-concerns #single-responsibility-principle

#node.js #шаблоны проектирования #программное обеспечение-дизайн #разделение проблем #принцип единой ответственности

Вопрос:

У меня всегда была эта путаница, о которой я не мог рассуждать больше. Каждый раз, когда я думаю об этом, я запутываюсь.

Также сложно поместить в одну строку, поэтому заголовок неоднозначен.

Все это о том, куда должна идти логика?

Я структурировал свою серверную архитектуру, как показано ниже.

Маршрутизатор направляет к контроллеру, а контроллер взаимодействует с поставщиком услуг или службой.

то есть

Для /zones маршрутизатора будет маршрут, на ZoneController который загружаются задачи ZoneService .

Аналогично, /banner-images маршрутизатор будет маршрутизировать, на BannerImageController который загружаются задачи для BannerImageService

Справедливо!

Теперь предположим, что мне нужно получить изображения баннеров в зоне, чтобы banner-images?zone_id=2

Куда должна идти логика? Какой контроллер? Какой сервис?

Ответ №1:

похоже, что Зоны здесь первоклассные граждане. Я думаю, один из способов был бы /zones/2/banner-images .

Какова связь между ними? У вас могут быть баннеры без зон? Являются ли они несколько независимыми, вместо этого?

Комментарии:

1. Они независимы.

2. тогда это должно быть удобно в использовании banner-images?zone_id=2 . Вы также могли бы взглянуть на GraphQL ( graphql.org )