API своими руками

Сделать API. Основные положения
1 - Клиент к себе копирует js скрипты и один proxy.html (прокси-файл)
2 - В своем html клиент должен вписать пару js-строк, чтобы получить информацию от нашего сервиса.

Долго мне объясняли руководители, что да как должно быть..

Идея такая: все работает через фреймы
JavaScript рисует фрейм, где в src запрос на данные к серверу услуг данных.
На стороне сервера услуг формируются данные и выводит фрейм в src, которого в Гете собственно и будут данные (формат json).
На стороне клиента в JsvaScript  должен разобрать полученное и вывести.

С чем столкнулась:

1 - В урле, в гете можно передавать ограниченную длину данных. В каждом браузере по своему. Для меня это было 1 500 символов.

2 - Раз в урл не влазит ответ, то его нужно рудить и разрезать на фрагменты. А на стороне клиента собирать. 

3 - Когда рубишь на фрагденты нужно строго следить за длиной в кодированном виде. Т.е. длина строки (например с пробелами и другими символами) не равна ей же но кодированной функциями urlencode (php) или encodeURIComponent (js)

4 - Организовать такую работу api при которой не имело значения сколько раз в одном и том же html файле будет вызван один и тот же метод (обращение к серверу). Пришлось каждый вызов разбивать на процессы и давать каждому процессу идентификатор (PID) Собирать и разбирать данные соответственно нужно с учетом PID.

5 - В процессе разработке поставили задачу передавать к серверу большой текст, разбивая его на фреймы, а на стороне сервера хранить фрагменты до сборке не в БД, а в редисе (http://redis.io http://rediska.geometria-lab.net/documentation) Касательно редиса была проблема, когда данные записывались в него одновременно и в какой-то момент вывод производился дважды (т.е. 2 фрагмента одновременно приходили, по коду понимали, что все данные пришлии оба процесса вводили результат один и тот же). Использовала механизм транзакций.

Расписыватьи пояснять код нет времени :( может когда появится напишу
У меня ещё много моментов недоделанных... есть и ошибки, которые я намерена исправлять, но все же скачать посмотреть скипты тут. Пишите замечания.






Комментарии

Популярные сообщения