Size: a a a

Архитектура ИТ-решений

2021 June 28

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Ну между REST и HTTP API есть разница
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Я пока видел rest исключительно в исполнении over HTTP.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Модель зрелости Ричардсона - это не модель зрелости REST API, а модель зрелости HTTP API
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
То есть API over HTTP
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
я бы не сказал что прямо очень медленный. Скорее всего проблема в сериализаторе JSON и, конечно, больешм объеме трафика.

На сейчас для публичного стэка я бы снова взял REST, для внутреннего бинарный gRPС
в основе gRPC лежит бинарный google protocol buffers, там размеры сообщений могут быть десятки байт. При этом есть формальная схема и автогенерируемый клиент.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
REST = CRUD с отображением на глаголы (методы) HTTP

Всё остальное- не REST
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Хм, сериализация JSON может быть сравнима с обработкой битовых масок по скорости?
источник

p

pragus in Архитектура ИТ-решений
Кодген из сваггера?
источник

S

Sergey in Архитектура ИТ-решений
надо смотреть на реальную скорость, оно скорей упрется в DB или бизнес-логику.  Когда сериализация существенна - это редко
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Это rest level 2 и выше же.
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
например построитель XML (JSON) на основе рефлексии Java,
может быть заметно медленее чем статически написанный или сгенерированный из схемы код
источник

S

Sergey in Архитектура ИТ-решений
потестите go + fasthttp + jsoniter
источник

S

Sergey in Архитектура ИТ-решений
сериализаторы можно сгенерить (и нужно)
источник

p

pragus in Архитектура ИТ-решений
+
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Ты знаешь, я «поварил» эту модель и пришёл к выводу, что ниже уровня 2 - вообще не REST

Все что ниже уровня 2 даже близко к исходной идее REST не стоит

То есть, это просто HTTP API

Поэтому модель зрелости HTTP API, где REST - уровень зрелости 2
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
А вот уровень 0, то есть RPC-like API мы можем реализовать либо с использованием промежуточной инфраструктуры, такой как gRPC, либо напрямую с помощью непосредственно методов HTTP
источник

p

pragus in Архитектура ИТ-решений
Тотальная беда того что выше level 1 - это натягивание ошибок транспорта и глаголов на бл
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Это зависит
Если нужен «чистый CRUD», то норм
Беда в том, что часто нужно нечто большее, чем CRUD, но при этом «натягивается» REST
источник

p

pragus in Архитектура ИТ-решений
Есть прекрасные мидлбоксы, waf, ngfw и прочие радости, которые могут вмешаться в любой момент
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Часто так и происходит
источник