Как написать свое API

В этой статье я хочу рассказать о том, как можно написать api для своего сервиса. Сделаем сервис по проверки корректности e-mail адреса. То есть, мы будем вызывать нашу api функцию, передавать ей параметр, в данном случае e-mail, а в ответ api должно вернуть результат проверки или код ошибки.
Для начала нужно определиться, что и как будет отвечать api. Я думаю, самый простой способ сделать ответ в формате JSON. А возвращать будем ассоциативный массив, состоящий из трех массивов: status, response и error. Status может иметь только два значения, OK и ERROR – это будет обозначать, как прошло обращение к api. Error – тут мы будем передавать числовой код ошибки, если ошибки нет, то передавать будем 0. Response – этот массив будет хранить интересующий ответ: true – если, e-mail адрес корректный или false, если e-mail не корректный.
В теории, надеюсь все ясно, теперь непосредственно код. Создадим скрипт api.php:
<?php
$status = 'OK';
$response = null;
$error = 0;
if(!isset($_GET['email'])){ // если не получили параметр
    $status = 'ERROR';
    $error = 1;
}else{
    $email = $_GET['email'];
    if(preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $email)){ // проверяем корректрость e-mail
        $response = true;
    }else{
        $response = false;
    }
}
// массив для ответа
$result = array(
    'status' => $status,
    'response' => $response,
    'error' => $error,
);
echo json_encode($result); // ответ в формате json
?>

Все, наше api готова, теперь попробуем сделать вызов нашей api функции, для этого создадим скрипт api_test.php
<?
$email = 'test@test.ru';
$resp = file_get_contents('http://myService.ru/api.php?email='.$email);
$data = json_decode($resp, true);
if($data['status']=='OK'){
    if($data['response']){
        echo 'E-mail корректный';
    }else{
        echo 'E-mail НЕ корректный';
    }
}else{
    echo 'Код ошибки: '.$data['error'];
}
?>

В скрипте мы пробовали вызывать api в php скрипте, но также можно сделать вызов с помощью java script
<script type="text/javascript">
var email = "test@test.ru";
$.ajax({
    url: 'http://myService.ru/api.php?email='+email,
    dataType : "json",
    success: function (data) {
        console.log(data);
        if(data['status'] == 'OK'){
            if(data['response'] === true){
                alert('e-mail корректный');
            }else{
                alert('e-mail НЕ корректный');                  
            }
        }
    }               
});
</script>
Теги:
API
Добавлено: 09 Мая 2018 17:29:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...