Namaztimes.kz logo
 

API Список городов и населенных пунктов

REST API


REST API позволяет с помощью простого запроса по HTTPS получить список городов и населенных пунктов используя базу данных Namaztimes.kz
REST API позволяет получить данные в JSON, XML формате. Все данные в кодировке UTF-8.

Описание


Отправьте GET запрос на

https://namaztimes.kz/ru/api/cities[?id={state}][&type={format}]

API поддерживает запросы на HTTPS.
Поддерживаемые форматы: JSON, XML.

В {state} можно указывать один id области, региона. Cписок областей, регионов можно взять тут

В {format} можно указывать формат передачи данных xml, json. Если {format} не указан, то формат автоматически становится json и добавляется функция console.dir.

Поэтому обязательно фильтруйте запросы от поисковых ботов. Это можно сделать простейшим регулярным выражением, вида:

$is_bot = preg_match(
"~(Google|Yahoo|Rambler|Bot|Yandex|Spider|Snoopy|Crawler|Finder|Mail|curl)~i",
$_SERVER['HTTP_USER_AGENT']
);
$geo = !$is_bot ? json_decode(file_get_contents('https://namaztimes.kz/ru/api/cities[?id={state}][&type={format}]'), true) : [];
var_dump($geo);

Также следует кэшировать результаты запросов для пользователей, чтобы при посещении пользователем 100 страниц сайта, не делать 100 запросов к API.

Примеры результатов


Результат обращения к API в JSON

//GET https://namaztimes.kz/ru/api/cities?id=almaty&type=json
{
    8408: "Алматы",
    8409: "Баканас",
    8410: "Бирлик",

    ...

    74900: "Кеген",
    74901: "Жаркент"
}
                        

Результат обращения к API в XML

//GET https://namaztimes.kz/ru/api/cities?id=almaty&type=xml

<response>
	<city>
		<id>8408</id>
		<name>Алматы</name>
	</city>
	<city>
		<id>8409</id>
		<name>Баканас</name>
	</city>
	<city>
		<id>8410</id>
		<name>Бирлик</name>
	</city>

    ...

	<city>
		<id>74900</id>
		<name>Кеген</name>
	</city>
	<city>
		<id>74901</id>
		<name>Жаркент</name>
	</city>
</response>
                        

Описание результатов


Описание полученных результатов обращения к API в JSON.

city_id: name

city_id - Идентификатор города.

name - Имя города.

Описание полученных результатов обращения к API в XML.

response->city->id - Идентификатор города.

response->city->name - Имя города.

Примеры использования


GET https://namaztimes.kz/ru/api/cities?id=almaty&type=json

Выводит информацию городов и населенных пунктов области, региона с {state} = almaty. То есть Алматинская область в формате JSON.

Обработка результата обращения к API в JSON,XML вызов городов и населенных пунктов для области {state} = almaty

//PHP JSON
$json = file_get_contents(
    'https://namaztimes.kz/ru/api/cities?id=almaty&type=json'
);

$json = json_decode($json,true);
print_r($json);

// PHP XML
$xml = simplexml_load_file(
    'https://namaztimes.kz/ru/api/cities?id=almaty&type=json'
);

$xml = json_encode($xml);
$xml = json_decode($xml,true);
$xml = $xml['city'];
$data = [];

foreach ($xml as $item){
    $data[$item['id']]= $item['name'];
}

unset($xml);
print_r($data);
                                
//PHP JSON
Array
(
    [8408] => Алматы
    [8409] => Баканас
    [8410] => Бирлик
    ...
    [74900] => Кеген
    [74901] => Жаркент
)

//PHP XML
Array
(
    [8408] => Алматы
    [8409] => Баканас
    [8410] => Бирлик
    ...
    [74900] => Кеген
    [74901] => Жаркент
)