Я разрабатываю и API-схему для управления, скажем, комментариями и обсуждениями. я бы себе иметь enpointПлоские против вложенных API
/discussions/:discussionId
, который когда GET
возвращает массив комментариев плюс некоторые мета-данные. Комментарии, возможно, может быть доступны индивидуально
/discussions/:discussionId/comments/:commentId
То, что я хотел бы также, чтобы это искать комментарии, чтобы быть в состоянии ответить на такие вопросы, как: Сколько от комментариев пользователей XYZ осталось? Имея указать discussionId
не представляется возможным, поэтому я полагаю, надо иметь
/comments/:commentId
, на котором вы можете ?q=XYZ
, например. Можно было бы тогда также извлечь все комментарии, принадлежащие к обсуждению путем, например,
/comments/:commentId?discussion=discussionId
и выше конечной точки
/discussions/:discussionId/comments/:commentId
становится излишним. В конце концов, все, кажется, тяготеют к плоской структуре API. Однако в дикой природе я вижу много таких вложенных конечных точек.
Что лучше всего здесь? Удалить вложенную конечную точку? Поддерживать и поддерживать избыточность? Возможно, есть еще более подходящий дизайн?