Сочувствую. Лично я обычно перед внедрением технологии X в проект задаю себе два вопроса:
1) Есть ли в проекте проблемы, которые после внедрения X исчезнут или существенно уменьшатся?
2) Будут ли использоваться те приятные бонусы, которых сейчас нет, но которые появятся после внедрения X?
Если ответом на оба вопроса является «нет», я не внедряю X на проект. Эдакое сочетание «не ломай то, что и так работает» и «не плати за бонусы, которые тебе не нужны».
Хотя иногда, конечно, желание поэкспериментировать с какой-нибудь новой клевой технологией пересиливает здравый смысл.
Статья, на мой взгляд, лишь пытается выделить сущности, выполняющие схожие функции, в двух парадигмах построения API — несмотря на разницу в терминах, деталях внутренней реализации и алгоритмах работы.
А в случае REST API можно забыть добавить аутентификацию и авторизацию для конечной точки, и злоумышленник получит данные, к которым он по идее не должен иметь доступа.
Или другой сценарий: конечная точка, возвращающая список данных, разбитых на страницы, не проверяет входные параметры, присылаемые клиентом. В результате можно запросить весь список целиком или просто очень много элементов на одной странице, и сервер свалится из-за огромного объема запрошенных данных.
GraphQL — всего лишь концепция построения интерфейса доступа, которая ослабляет связанность клиента и сервера. На мой взгляд, проблема, которую вы описываете, вообще не имеет отношения к тому, на чем у вас реализован API. Это скорее вопросы информационной безопасности.
Экстраверт ДОВЕРЯЕТ объектам, он стремится слиться с объектами окружающего мира, уподобиться им, ОТДАТЬ им себя (этот процесс, если кому интересно, называется диссимиляцией).
Интроверт, наоборот, НАСТОРОЖЕН по отношению к объектам. Он стремится максимально снизить напряжение, которое они у него вызывают; он либо бежит, прячется от объектов, либо нейтрализует их самым надёжным способом — разбирает по косточкам, усваивает, делает своими (то есть ассимилирует).
С конкурентами можно бороться с помощью законным методов (демпинг цен, судебные процессы, патентные войны и т.п.), а можно незаконными (рейдерство, давление со стороны силовиков, угрозы отъема бизнеса или даже физической расправы). Вы реально не видите разницы между этими методами борьбы с конкурентами? И того, к каким последствиям для отдельных людей и экономики в целом они приводят?
1) Есть ли в проекте проблемы, которые после внедрения X исчезнут или существенно уменьшатся?
2) Будут ли использоваться те приятные бонусы, которых сейчас нет, но которые появятся после внедрения X?
Если ответом на оба вопроса является «нет», я не внедряю X на проект. Эдакое сочетание «не ломай то, что и так работает» и «не плати за бонусы, которые тебе не нужны».
Хотя иногда, конечно, желание поэкспериментировать с какой-нибудь новой клевой технологией пересиливает здравый смысл.
Или другой сценарий: конечная точка, возвращающая список данных, разбитых на страницы, не проверяет входные параметры, присылаемые клиентом. В результате можно запросить весь список целиком или просто очень много элементов на одной странице, и сервер свалится из-за огромного объема запрошенных данных.
GraphQL — всего лишь концепция построения интерфейса доступа, которая ослабляет связанность клиента и сервера. На мой взгляд, проблема, которую вы описываете, вообще не имеет отношения к тому, на чем у вас реализован API. Это скорее вопросы информационной безопасности.
Интроверт, наоборот, НАСТОРОЖЕН по отношению к объектам. Он стремится максимально снизить напряжение, которое они у него вызывают; он либо бежит, прячется от объектов, либо нейтрализует их самым надёжным способом — разбирает по косточкам, усваивает, делает своими (то есть ассимилирует).
Остальное — здесь: Экстраверты и интроверты — паразиты и падальщики