.NET Разработчик
6.54K subscribers
442 photos
3 videos
14 files
2.12K links
Дневник сертифицированного .NET разработчика. Заметки, советы, новости из мира .NET и C#.

Для связи: @SBenzenko

Поддержать канал:
- https://boosty.to/netdeveloperdiary
- https://patreon.com/user?u=52551826
- https://pay.cloudtips.ru/p/70df3b3b
Download Telegram
День 2250. #SystemDesign101
Начинаю серию постов про System Design. Это будут небольшие шпаргалки, описывающие ту или иную технологию. Надеюсь, вам понравится.

1. Виды коммуникаций API
Архитектурные стили определяют, как различные компоненты системы взаимодействуют друг с другом. В результате они обеспечивают эффективность, надёжность и простоту интеграции с другими системами, предоставляя стандартный подход к проектированию и созданию API. Вот наиболее часто используемые стили:

SOAP
- Зрелый, всеобъемлющий, на основе XML;
- Лучше всего подходит для корпоративных приложений.

RESTful
- Популярный, простые в реализации методы HTTP;
- Идеально подходит для веб-сервисов.

GraphQL
- Язык запросов, запрашивает только нужные данные;
- Снижает сетевые издержки, ускоряет ответы.

gRPC
- Современный, высокопроизводительный;
- Подходит для архитектур микросервисов.

WebSocket
- Двунаправленные, постоянные соединения в реальном времени;
- Идеально подходит для обмена данными с малой задержкой.

Webhook
- Управляемый событиями, использует обратные вызовы HTTP, асинхронный;
- Уведомляет системы о событиях.

Источник: https://github.com/ByteByteGoHq/system-design-101
👍29👎1
День 2254. #SystemDesign101
REST API или GraphQL


REST
Использует стандартные методы HTTP, такие как GET, POST, PUT, DELETE для операций CRUD.
Хорошо работает, когда вам нужны простые, единообразные интерфейсы между отдельными сервисами/приложениями.
Стратегии кэширования просты в реализации.
Может потребоваться несколько циклов для сбора связанных данных из отдельных конечных точек.

GraphQL
Предоставляет клиентам единую конечную точку для запроса именно тех данных, которые им нужны.
Клиенты указывают требуемые поля во вложенных запросах, и сервер возвращает данные, содержащие только эти поля.
Поддерживает мутации для изменения данных и подписки для уведомлений в реальном времени.
Отлично подходит для агрегации данных из нескольких источников и хорошо работает с быстро меняющимися требованиями к внешнему интерфейсу.
Переносит сложность на сторону клиента и может допускать опасные запросы, если не защищён должным образом.
Стратегии кэширования могут быть сложнее, чем REST.

Выбор между REST и GraphQL зависит от конкретных требований приложения и команды разработчиков. GraphQL хорошо подходит для сложных или часто меняющихся потребностей интерфейса, в то время как REST подходит для приложений, где предпочтительны простые и последовательные контракты.

Ни один из подходов не является панацеей. Тщательная оценка требований и компромиссов важна для выбора правильного стиля. И REST, и GraphQL являются допустимыми вариантами для раскрытия данных и поддержки современных приложений.

Источник:
https://github.com/ByteByteGoHq/system-design-101
👍15