Какой HTTP-глагол использовать для запуска публикации сообщений Kafka?
Вы отвечаете на этот вопрос, просматривая семантику методов HTTP и решая, какой из них подходит для вашего варианта использования.
Для этого примера разумными кандидатами являются GET
и POST
.(Технически, вы могли бы рассмотреть HEAD
, что является своего рода специализированным случаем GET
- здесь я его проигнорирую).
Важное различие, которое нужно понять, состоит в том, что семантика GET включает сейф ;описание «эффективно только для чтения», но важными моментами являются следствия этого.
Цель разграничения безопасных и небезопасных методов состоит в том, чтобы разрешить процессы автоматического поиска (пауки) и оптимизацию производительности кэша.(предварительная выборка) для работы без страха причинения вреда.
Автоматический поиск означает, что вы можете видеть GET
запросы, даже если для них нет бизнес-мотивации.Если все в порядке, тогда использование GET - это нормально - и оно даже имеет некоторые преимущества, когда запросы отправляются через ненадежную сеть.
С другой стороны, если повторная публикация является «дорогой» или должна быть только в противном случаесделано "нарочно", тогда POST
является более подходящим выбором.
Это может помочь представить это в контексте веб-страницы в браузере.Если вы предоставляете доступ через элемент a , браузер может попытаться оптимизировать работу пользователя, предварительно выбрав ресурс.С другой стороны, использование элемента формы с method: POST
не будет предварительно извлечено, поскольку совместимые браузеры знают, что запрос не должен быть безопасным.
Интернет-мнение о [REST], похоже, разделено.
REST сильно страдает от того, что Мартин Фаулер назвал Semantic Diffusion .
Семантическая диффузия происходит, когда у вас есть слово, которое придумано человеком или группой, часто с довольно хорошим определением, но затем распространяется через более широкое сообщество таким образом, что ослабляет это определение.Это ослабление может привести к потере определения полностью, а вместе с ним и к терминологии.
REST - это архитектурный стиль ;эталонным приложением, созданным с использованием этого стиля, является World Wide Web .
Единственный остающийся открытым вопрос, который остается открытым, заключается в том, является ли REST правильным способом для запуска задания
Зависит от ограничений, под которыми вы работаете, и от того, насколько вы амбициозны.«Всем» доступны веб-клиенты, так что это дешевый способ передачи сообщения от клиента к серверу.С другой стороны, HTTP-запросы не очень малы, и в них есть множество встроенных возможностей, которые могут быть не более чем перетаскиванием.
Лошади для курсов.