Как написать свое 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: 3 комментария

    1. В html форме нужно указать
      То есть для работы этого кода нужно бы сделать форму ввода мыла.
      Все работает.

    2. В html форме нужно указать в форме action = api.php method=»GET»
      То есть для работы этого кода нужно бы сделать форму ввода мыла.
      Все работает.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*