Главным образом наверное из-за простоты реализации и удобства работы. На клиенте двух строчек достаточно что бы получить объект, работающий со всеми функциями сервера.
Гуру архитектуры — предложите более правильную схему?
Я не гуру, но обычно авторизация проходит однажды, например, способом OAuth, а дальше уже идёт обмен токенами. А то вы заставляете хранить на стороннем сервисе связку пользователь/пароль. И при утере, например, мобильника, вам придётся во всех сервисах менять пароль, вместо того, чтобы убить скомпрометированный токен.
[offtop] Это ещё ничё… Вот как вас сейчас заставят уменьшать количество передаваемого трафика, т.к. из за вашего «багапродукта» у них жж-ка не грузится, притом за свой счёт, т.к. это «ошибка» ПО и проектирования…. Сочувствую, вспоминаю себя лет 5 назад, когда для связи серверов обещали 5Мб выделенную линию, а посадили всё на модем 4,2КБ/с… [/offtop]
REST гораздо более в духе HTTP, SOAP же во многом дублирует функционал HTTP. Так что при разработке аналогичного API полгода назад я остановился на REST.
Во-первых потому, что на момент написания экспорта каких-то параметров просто не было.
Во-вторых потому, что какие-то были сочтены «служебной информацией», которая для пользователя лишняя.
Не знаю — сортировка категорий очевидно была всегда, и я просил о её добавлении в экспорт её не меньше года назад.
Ну, теперь-то можно не стесняться. А может быть и не брать денег за экспорт — раз это доступно каждому.
Кстати, реально работающий экспорт (и импорт?) на основе этого API был бы лучшим примером для разработчиков.
авторизацию пользователя можно улучшить следующим образом:
1. сделать отдельно функцию, которая будет получать идентификатор сессии или какой-то другой токен, который будет уникально идентифицировать пользователя. затем передавать не логин и пароль пользователя, а этот идентификатор
2. данные авторизации (не важно, пару логин-пароль или идентификатор сессии) можно передавать не как один из аргументов функции, а в заголовке soap запроса. удобно это тем, что практически в любой библиотеке, работающей с soap (типа axis, php soap), есть возможность задать этот заголовок один раз, после чего он добавляется к каждому запросу. это облегчит жизнь разработчика
оба совета в свое время реализовал в SOAP API биллинговой системы, все были довольны :)
На сайте информация про SSL, что браузер будет ругаться, но он не ругается, т.к.сертификат уже подписан StartCom, к которому, как минимум у opera, ff, ie и chrome есть доверие
waste — трата, расход (expense)
moves — перемещения, трансферы (transfers)
course — курс валюты (exchange rate)
duty — долг (debt)
place — место хранения денег, счет (account)
А нет варианта без синхронизации? Собственные базы нужны только десктопным приложениям. Например из того же вконтакта удобнее сразу добавлять транзакции, а не выкачивать базу еще на какой-то сервер и потом с него синхронизироваться.
Вопрос правильный. Конечно есть!
Для виджетов типа вконтакте и т.п. — можно просто пользоваться методами добавления трат, получения остатков, и формирования отчётов.
Тем, что оно платное :) Например, я оплатил premium доступ за 300 рублей. А за приложение нужно заплатить еще 200 руб… Итого 500 рублей в год. Я считаю что это дорого, притом что я живу в Европе и покупаю разный софт время от времени.
Я бы сказал что возможность использовать API для любых приложений должны входить в эти 300 рублей premium-сервиса, а приложения должны люди создавать свои.
P.S. Если вам интересно, я могу рассказать о нескольких багах и неудобствах что я нашел, как пользователь который только начал пользоваться сервисом.
Пишем софт для учёта финансов: Открытый API