Переменное поведение, основанное на полях в запросе, выглядит как анти-шаблон.
Это, вероятно, менее анти-шаблон, чем кажется.
Исторически SOAP, а в последнее время и GraphQL, во многом были «POST полезной нагрузкой на ресурс, и мы выясним это с другой стороны».
HTTP - это протокол приложения, домен приложения которогопередача документов по сети.- Джим Уэббер, 2011
REST ограничивает нас в использовании ограниченного набора сообщений - «пять глаголов и истина» - так что неизбежно будет некоторое удвоениегде-то.
Причина, по которой мы ожидаем, что POST будет обрабатывать несколько видов сообщений, заключается в том, что правила недействительности кэша применяются к целевому ресурсу.Поэтому мы хотим использовать цели, которые делают недействительными правильные представления, которые были кэшированы клиентом.
Итак, в HTML у нас может быть много разных форм, которые все POST к одному ресурсу, потому чтоуспешная обработка этих форм делает недействительными кэшированные представления этого ресурса.
Да, это означает, что на стороне сервера нам, возможно, придется вручную прокрутить некоторую собственную логику маршрутизации, когда используемая среда поддерживает толькомаршрутизация на основе метаданных запроса.
Это не значит, что вы не можете использовать более мелкозернистые ресурсы - это тоже нормально.Но они «должны» быть ресурсами, которые имеют свои собственные представления, а не просто конечными точками RPC с различным написанием для каждой «ответственности».