Начинаем создавать набор сервисов easyAPI
Создавая статьи на темы, интересующие посетителей, отвечая на их комментарии, и даже выполняя платные заказы на эти темы я все больше понимал, что пора создавать некий набор сервисов и библиотек, реализующих насущные потребности пользователей веб-сайтов.
Собственно, этой статьей я начинаю публикацию на нашем ресурсе сервисов под общим названием easyAPI.
Что это будет?
EasyAPI это по большей части JavaScript-библиотеки, реализующие ту или иную функциональность, я пока до конца не знаю, какие именно сервисы я буду предоставлять и в каком виде. Но точно знаю, что эти сервисы помогут, например, владельцу сайта, поднятого на бесплатном хостинге, отобразить погодный информер, настроенный полностью под требования веб-мастера. Или, например, позволят определить географию посетителей определенного сайта и отобразить ее на карте страны. Или, например, отобразить посетителю сайта погодный информер именно его города. И все это, повторюсь, чаще всего будет возможно даже на хостинге без поддержки PHP.
Короче говоря, от слов к делу!
И сегодня на сайте easy4web.ru появляется первый такой сервис – GeoIP, позволяющий по адресу посетителя определить его приблизительное местоположение.
Он живет здесь http://easy4web.ru/api/geoip/get.php
Поддерживаемые параметры:
p – формат отдаваемых данных:
- p=j – результат – JSON
- p=a – результат – массив вида cc2=RU;cc3=RUS;cty=Moskow
- p=x – результат – XML
- p=ax – результат – массив обернутый в XML, вида <easy>cc2=RU;cc3=RUS;cty=Moskow</easy>
- p=jx – результат – JSON обернутый в XML, вида <easy>cc2=RU;cc3=RUS;cty=Moskow</easy>
f – длина имен полей:
- f=f – длинные имена, вида country_code
- f=s – короткие имена, вида cc2
ip – IP-адрес, если он не задан, то в качестве адреса берутся координаты сервера, с которого пришел запрос REMOTE_ADDR.
s – кодировка(charset) отдаваемых данных.
Например s=koi8-r или s=utf-8, по умолчанию считается s=windows-1251.
Если я желаю получить информацию по собственному местоположению в формате JSON с длинными именами полей, я вызову URL http://easy4web.ru/api/geoip/get.php?p=j&f=f
В следующей статье на эту тему я расскажу о том, как можно применить данный сервис при вызове его из PHP-программы, и из JavaScript на удаленном сервере. Пока сервис easy.GeoIP находится в стадии тестирования, возможны некоторые изменения в его работе, о которых я буду предупреждать на сайте.
Сервис переехал на другой адрес. Теперь он живет здесь http://easyapi.ru/geoip/get.php
Добавился новый параметр c-коллбэк. Применяется только в режиме p=j/. Таким образом, вызвав http://easyapi.ru/geoip/get.php?p=j&c=onGet, мы получим пакет вида:
onGet('{"country_code":"RU","country_code3":"RUS","country_name":
"Russian Federation","region":48,"city":"Moscow",
"latitude":55.7522,"longitude":37.6156}');
Добавил поля error, country_name_ru, city_ru (их краткие эквиваленты: err, cnr, ctr). Возвращают описание ошибки, название страны на русском языке, название города на русском языке. также добавил возврат заголовка charset=utf-8, и указал заголовок кодировки и версии xml. Результат выложен по адресу: http://easyapi.ru/geoip/get1.php, после тестирования он перейдет в официальную версию. Особенно интересно, чтобы его протестировали те, кто уже пользуется этим сервисом без улучшений.
Исправил проблему с кодировками. Добавил во входные параметры требуемую кодировку, она теперь задается параметром s, например s=utf-8. По умолчанию считается charset=windows-1251. Ликвидировал тестовый хэндлер get1.php, все изменения внес в get.php после собственного тестирования. Скоро будет статья на тему того, как все это использовать в PHP и JavaScript.
Прочтите еще:

