Namaztimes.kz logo
 

API Намаз уақыттары

REST API


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

Анықтама


Сілтемеге GET сұратым жіберу

https://namaztimes.kz/api/praytimes[?id={city_id}][&type={format}]

API - HTTPS сұратымын қабылдайды.
Қолданымдағы форматтар xml, json.

{city_id} бөліміне бір қаланың id нөмірін көрсетуге болады. Қалалардың тізімін мына жерден алуға болады
Егер {city_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']
);
$geo = !$is_bot ? json_decode(file_get_contents('https://namaztimes.kz/api/praytimes'), true) : [];
var_dump($geo);

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

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


GET https://namaztimes.kz/api/praytimes?id=8408&type=json

JSON форматында Алматы қаласы үшін (Ислам күнтізбесі бойынша және григориандық күнтізбе бойынша даталар, құбыла бағыты, магниттік ауытқу, құбыла бағыты көрсететін компастың градусы, сондай-ақ бір күндік намаз уақыттары) Ақпарат көрсетеді.

GET https://namaztimes.kz/api/praytimes?id=8359&type=xml

XML форматында Алматы қаласы үшін (Ислам күнтізбесі бойынша және григориандық күнтізбе бойынша даталар, құбыла бағыты, магниттік ауытқу, құбыла бағыты көрсететін компастың градусы, сондай-ақ бір күндік намаз уақыттары) Ақпарат көрсетеді.

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


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

//GET https://namaztimes.kz/api/praytimes?id=8408&type=json
{
	islamic_date: "1440-04-18",
	date: "2018-12-25",
	praytimes: {
		imsak: "6:55",
		bamdat: "7:15",
		kun: "9:10",
		ishraq: "10:20",
		kerahat: "13:01",
		besin: "13:27",
		asriauual: "15:08",
		ekindi: "15:38",
		isfirar: "16:20",
		aqsham: "17:19",
		ishtibaq: "18:31",
		quptan: "19:20",
		ishaisani: "19:33"
	},
	attributes: {
		ID: "8359",
		countryID: "99",
		arzDer: "51",
		arzDak: "9",
		arzYon: "N",
		tulDer: "71",
		tulDak: "28",
		tulYon: "E",
		STulDer: "90",
		STulDak: "0",
		STulYon: "E",
		qiblaangle: "231.52",
		magdeg: "9.71",
		CityName: "Астана"
	}
}
                        

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

//GET https://namaztimes.kz/api/praytimes?id=8359&type=xml
<response>
	<islamic_date>1440-04-18</islamic_date>
	<date>2018-12-25</date>
	<praytimes>
		<imsak>6:55</imsak>
		<bamdat>7:15</bamdat>
		<kun>9:10</kun>
		<ishraq>10:20</ishraq>
		<kerahat>13:01</kerahat>
		<besin>13:27</besin>
		<asriauual>15:08</asriauual>
		<ekindi>15:38</ekindi>
		<isfirar>16:20</isfirar>
		<aqsham>17:19</aqsham>
		<ishtibaq>18:31</ishtibaq>
		<quptan>19:20</quptan>
		<ishaisani>19:33</ishaisani>
	</praytimes>
	<attributes>
		<ID>8359</ID>
		<countryID>99</countryID>
		<arzDer>51</arzDer>
		<arzDak>9</arzDak>
		<arzYon>N</arzYon>
		<tulDer>71</tulDer>
		<tulDak>28</tulDak>
		<tulYon>E</tulYon>
		<STulDer>90</STulDer>
		<STulDak>0</STulDak>
		<STulYon>E</STulYon>
		<qiblaangle>231.52</qiblaangle>
		<magdeg>9.71</magdeg>
		<CityName>Астана</CityName>
	</attributes>
</response>
                        

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


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

islamic_date - Ислам күнтізбесі бойынша сұратым жасалған сәттегі күннің датасы.

date - Григориан күнтізбесі бойынша сұратым жасалған сәттегі күннің датасы.

praytimes - Намаз уақыттары. Намаз уақыттары туралы кеңірек мәліметті мына жерден көруге болады

attributes - Сұратым жасалған сәттегі Қалаға қатысты қосымша ақпараттар.

attributes->ID - Қалаға тән Id.

attributes->countryID - Сұратымдағы қала тұрған мемлекетке қатысты Id.

attributes->CityName - Сұратымдағы қаланың атауы.

attributes->Latitude_1 - Сұратымдағы қала ендігінің 1-мағынасы.

attributes->Latitude_2 - Сұратымдағы қала ендігінің 2-мағынасы.

attributes->Latitude_3 - Сұратымдағы қала ендігінің 3-мағынасы.

attributes->Longitude_1 - Сұратымдағы қала бойлығының 1-мағынасы.

attributes->Longitude_2 - Сұратымдағы қала бойлығының 2-мағынасы.

attributes->Longitude_3 - Сұратымдағы қала бойлығының 3-мағынасы.

attributes->QiblaDir - Сұратымдағы қаланың, құбыла бағытының магниттік ауытқусыз градустық көрсеткіші.

attributes->MagnetDev - Сұратымдағы қаланың магниттік ауытқу градусы.

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