Интересно, каков рекомендуемый способ разделения конечных точек поиска. Должны ли мы вообще разделять поиски по сущностям?
Давайте представим, что у нас есть две сущности.
- Пользовательская сущность, хранящаяся в БД в пользовательской таблице. Доступ к нему можно получить по следующему URL
GET /api/users/{userId}
Контактная информация сущности, хранящаяся в БД у пользователя contact_info. можно получить доступ по следующему URL
GET /api/users/{userId}/contact-info
Затем мы хотим добавить поддержку сложных поисков.
- Лучше ли иметь две отдельные конечные точки для каждой сущности?
Тогда мы можем иметь четкое разделение углов.
Например:
POST /api/users/_search
POST /api/users/contact-info/_search
Или лучше иметь одну конечную точку поиска, потому что эти объекты связаны?
POST /api/users/_search
Но потом я боюсь, что эта конечная точка раздутая и часто становится запутанным беспорядком. В частности, с внутренней точки зрения хранимые процедуры, поддерживающие эту конечную точку, становятся довольно сложными и подверженными ошибкам.
Существует ли какое-то практическое правило при созданииновая конечная точка поиска?
Спасибо за потраченное время.