LINUX.ORG.RU

Объясните в общих словах как работают современные Web API

 , webapi


0

2

Хочу понять один момент.

Вот, например, есть Vk, и есть альтернативный клиент для него (для Android) Kate.

Kate использует API Вкoнтактa.

Не очень представляю пока что такое API в вебе, но наверное это отправление некоторого запроса, допустим упакованного в json объект и получение json ответа, но главный вопрос у меня не про то как устроено API.

А с тем почему приложения подобные Kate от него зависят, как я понял, более чем полностью.

Вот например разработчики Kate с каждым новым релизом все чаще говорят что Вконтакте обрубил им очередную функцию в API и теперь перестанет работать что-то ещё. При этом они любят упомянать что типа себе любимым Вконтакте эту функцию оставил, видимо имея ввиду работоспособность официального приложения.

Так вот мне не понятен момент - есть же веб-версия, полнофункциональная.

Объясните в чём проблема стороннему клиенту любого веб-сервиса работать как браузер, тем самым где закрыт официальный API смотреть что отсылает и что принимает браузер - и воспроизводить это.

★★★★★

Последнее исправление: bonta (всего исправлений: 1)

Не знаю что там у вконтакта, надо конкретно смотреть.

Но в общем случае пользоваться непубличным апи это стрелять себе в ногу. В какой-то момент оно просто поменяется без предупреждения и и приложение перестанет работать. Пока разраб это увидит, пока пофиксит (если это вообще возможно), пока приложение пройдет модерацию в сторах, все уже с него уйдут.

Некоторые специально закрывают апи и, например, официальном приложении может быть вшит секретный апи ключ. Да, его скорее всего можно вытащить, но это уже какое-то воровство и мутные воды.

Для себя сойдет, для пользователей – нет

masa ★★
()

Объясните в чём проблема стороннему клиенту любого веб-сервиса работать как браузер, тем самым где закрыт официальный API смотреть что отсылает и что принимает браузер - и воспроизводить это.

Потому что парсить постоянно меняющуюся веб-страницу и реверсить запросы – это совсем другой уровень трудозатрат?

MoldAndLimeHoney ★★
()

Не очень представляю пока что такое API в вебе, но наверное это отправление некоторого запроса, допустим упакованного в json объект и получение json

Апи это прежде всего некая задокументированная вещь. То есть есть некие гарантии, что эти вещи или меняться вообще не будут, или об этом будет известно. Способ получения/отправки данных вещь вторичная.

Объясните в чём проблема стороннему клиенту любого веб-сервиса работать как браузер, тем самым где закрыт официальный API смотреть что отсылает и что принимает браузер - и воспроизводить это.

Браузер это не только отправку и получения данных. У него еще есть скриптовый язык (javascript). Браузер может хранить и передавать данные сайтов (cookie). А еще есть правила отображения элементов (css). Способов сделать так, чтобы браузер прошел верификацию, а программа нет очень много. Я натыкался на «капчу», в которой надо было выполнить JS код, который с использованием css смотрел является ли блок отображаемым или нет. Чтобы обойти эту капчу, нужно написать свой браузер.

dicos ★★★
()
Последнее исправление: dicos (всего исправлений: 1)
Ответ на: комментарий от MoldAndLimeHoney

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

anonymous
()
Ответ на: комментарий от dicos

Чтобы обойти эту капчу, нужно написать свой браузер.

Или использовать имеющийся в headless режиме (chrom/chromium позволяет) или даже управлять gui автоматически, программы такие еще в начале нулевых точно были. Но это все борьба снаряда и брони.

anonymous
()

Объясните в чём проблема стороннему клиенту любого веб-сервиса работать как браузер, тем самым где закрыт официальный API смотреть что отсылает и что принимает браузер - и воспроизводить это.

Ни в чём. Просто там инвалиды кодят. Ну а кто ещё будет писать клиенты для соцсетевого мусора? Нормальным людям оно ненужно.

firkax ★★★★★
()
Ответ на: комментарий от anonymous

Или использовать имеющийся в headless режиме (chrom/chromium позволяет) или даже управлять gui автоматически, программы такие еще в начале нулевых точно были.

Скорее тут вопрос а так ли нужно для мессенджера еще запускать в фоне браузер

dicos ★★★
()

Объясните в чём проблема стороннему клиенту любого веб-сервиса работать как браузер, тем самым где закрыт официальный API смотреть что отсылает и что принимает браузер - и воспроизводить это.

Если это программа для программиста, который в случае чего разберётся сходу что отвалилось, проблем никаких нет.

Да и так мало ли чего, всё так сервис частный.

Ygor ★★★★★
()