Namaztimes.kz logo
 

API Қалалар мен елді мекендер тізімі

REST API


REST API Namaztimes.kz сайтының дерекқорын қолдана отырып қарапайым HTTPS сұранысы арқылы Қалалар мен елді мекендер тізімін алуға мүмкіндік береді.
REST API ақпараттарды JSON, XML форматтарында алуды қамтамасыз етеді. Барлық ақпараттар UTF-8 кодировкасы бойынша.

Анықтама


GET сұратымын жіберу

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

API - сұратымды HTTPS протоколында қабылдайды.
Қолданымдағы форматтар JSON, XML.

{state}-ге бір Облыс, аудан id нөмірін көрсетуге болады. Облыстар мен аудандардың тізімін мына жерден алуға болады

{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']
);
$result = !$is_bot ? json_decode(file_get_contents('https://namaztimes.kz/ru/api/cities?id={city_id}'), true) : [];
var_dump($result);

Сондай-ақ тұтынушы тарапынан 100 бет парақталған жағдайда, АРІ-ге 100 рет сұратым жасамау үшін сұратым нәтижелерін КЭШке сақтап алу қажет.

Нәтижелерге мысалдар


API-ге JSON форматы бойынша сұратым нәтижесі

    //GET https://namaztimes.kz/api/cities?id=almaty&type=json
    {
        8408: "Алматы",
        8409: "Бақанас",
        ...
        74900: "Кеген",
        74901: "Жаркент"
    }
    

API-ге XML форматы бойынша сұратым нәтижесі

    //GET https://namaztimes.kz/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>74901</id>
            <name>Жаркент</name>
        </city>
    </response>
    

Нәтижелердің анықтамасы


API-ге сұратым бойынша JSON форматында алған нәтижелердің анықтамасы.

city_id: name

city_id - Қала идентификаторы (id).

name - Қала аты.

>API-ге сұратым бойынша XML форматында алған нәтижелердің анықтамасы.

response->city->id - Қала идентификаторы (id).

response->city->name - Қала аты.

Қолдану мысалдары


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

API-ге жіберілген {format} JSON,XML форматындағы сұратым нәтижелерін өңдеу. Облысқа қатысты қалалар мен елді мекендер тізімін шақыру {state} = almaty.

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

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

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

$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] => Жаркент
)
                                

REST API


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

Описание


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

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

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

В {date} можно указывать одну дату, в формате: год-месяц-день (с ведущим нулем).

В {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/date[?date={date}][&type={format}]'), true) : [];
var_dump($geo);

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

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


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

    //GET https://namaztimes.kz/ru/api/date?date=2019-02-09&type=json
    {
        IslamicDate: "1440-07-04",
        Date: "2019-02-09"
    }
                        

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

    //GET https://namaztimes.kz/ru/api/date?date=2019-02-09&type=xml

    <response>
        <IslamicDate>1440-07-04</IslamicDate>
        <Date>2019-02-09</Date>
    </response>
                        

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


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

IslamicDate - Дата по Исламскому календарю.

Date - Дата запроса.

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

response->IslamicDate - Дата по Исламскому календарю.

response->Date - Дата запроса.

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


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] => Жаркент
)