Как создать свой API на сайте
Не так давно один из моих посетителей мне задал вопрос по e-mail: "Как создать свой API на сайте?". Я решил, что это будет весьма полезно другим пользователям, тем более, что на кажущуюся сложность процесса, всё очень и очень просто. Необходимо лишь обладать самыми элементарными знаниями PHP.
Если Вы вдруг не понимаете, о чём идёт речь, то прочитайте сначала статью: что такое API. Идём дальше. Давайте разберём, а для каких сайтов нужен вообще API:
- Социальные сети (Facebook и другие). Здесь требуется API для получения информации о различных данных пользователя: его друзьях, личных сообщениях и прочей информации.
- Почтовые сервисы (например, mail.ru). В первую очередь, для получения писем. Иногда для отправки.
- Различные сервисы для создания Интернет-магазинов. Например, получить список новых заказов или список всех товаров в заданной категории.
- И много-много других сайтов.
Первое, что необходимо усвоить - это то, что API нужен далеко не каждому сайту (даже если он принадлежит одной из вышеуказанных групп).
Если же Вы считаете, что API на Вашем сайте необходим, то давайте разберём пример того, как он создаётся. Пусть у нас будет такая задача: есть ЭПС (как, например, WebMoney). И мы хотим, чтобы пользователь мог из своего кода, пользуясь нашим API, узнать свой баланс на счёте.
Создадим файл (например, api.php), который у нас будет принимать GET-запросы от пользователей на получение различной информации. Напишем в этом обработчике такой код:
<?php
if ($_GET['action'] == "getbalance") {
$balance;
//Узнаём из базы данных баланс аккаунта и записываем в переменную balance
echo $balance;
}
?>
Теперь разработчики API должны дать информацию пользователям о том, как надо отправлять запрос, чтобы пользователь мог узнать свой баланс на аккаунте:
http://mysite.ru/api.php?action=getbalance&key=fa9sgwlgjs9gdsjlgjdsjglsdlgs
Этот запрос пользователи формируют в своих скриптах (например, через cURL). Параметр key - это уникальный ключ каждого пользователя. И ответом этого запроса будет число, отвечающее за баланс пользователя. Аналогично создаются и все другие возможности API. Можно добавлять другие различные параметры: например, получить список операций пополнения счёта с одной даты по другую. Желательно, сами списки возвращать в формате JSON.
Вот так легко и просто создаётся API для сайта. Безусловно, нужен он Вам или нет - решать только Вам, а всю самую необходимую информацию я Вам только что дал.
-
- Михаил Русаков
Комментарии (20):
что такое API - ссылка не та)
Ответить
Большое спасибо! Уже исправлено.
Ответить
и что такое формат JSON?
Ответить
Об этом будет моя следующая статья, которая выйдет в понедельник. Но если быть совсем кратким, то это аналог ассоциативного массива в PHP.
Ответить
А можно ли написать для ИГР АПИ?! Как вк например, что бы определяло кто заходил,его действия, что бы можно бло играть друг с другом?!
Ответить
Для онлайн-игр, конечно, можно.
Ответить
А вы можете мне помочь?!
Ответить
Составьте техническое задание, отправьте мне на e-mail: [email protected]. Если будет возможность и время, я соглашусь выполнить.
Ответить
по моему ето полный фигня получить список друзей в соц сеть через api
Ответить
Для Вас, как Вы выражаетесь, это фигня, а для других это очень даже полезно бывает. Много, чего можно придумать, на основании списка друзей. Была бы фантазия.
Ответить
но для использования api ради список друзей ето действительно беcмислено , для получения id друзей хватит 3-4 строк кода
Ответить
Где 3-4 строки кода? На стороне пользователя должна быть 1 строка кода с запросом. А на стороне сервера сам API никак не может быть на 3-4 строки. И API содержит не только список друзей, но ещё кучу функций. Список друзей лишь пример.
Ответить
я имел введу только друзья а вообще я постараюсь использовать post запросы а не get так боле безопасно а апи в основном надо для рассылок, или поделится своим скриптом с другими сайтами
Ответить
У вас тавтология в этом предложении "Желательно, сами списки возвращать желательно в формате JSON."
Ответить
Спасибо, исправил!
Ответить
До речі, планую для апі зробити щоб можна було відправляти REST-правильні http запити(PUT, DELETE..). Є якійсь правильні способи дістати глобальні масиви з ними крім танцями з бубном навколо php://input?
Ответить
в принципе,нету Только так) Либо при помощи стандартных глобальных переменных Так Вы создайте класс определённый и подключайте его,где нужно
Ответить
где key=fa9sgwlgjs9gdsjlgjdsjglsdlgs key - это поле в базе? fa9sgwlgjs9gdsjlgjdsjglsdlgs - значение key? Я заменил getbalance на своё получилось вот: <?php $mysqli = new mysqli('localhost', 'userDB', 'passDB') or die('Cannoct connect to database'); $mysqli->select_db('nameDB') or die('Cannot select database'); if ($_GET['method'] == "get.newsDate") { $date; echo $date; } ?> ничего не выводит
Ответить
API на сайте -сложнось в посыле http:// В адресной строке или в форме нухно отправлять?В адресной строке пустая страница всегда.Со временем может дойдет.Но пона ето никчему,но полезно это знать.
Ответить
Здравствуйте. У меня имеется на сайте API, но в нём не хватает некоторых методов. Возможна ли доработка, имеющегося API? Если да, то можно ли с Вами обговорить этот вопрос, или может дали бы контакты того кто этим занимается. Вообще, нужна доработка методов для создания нативного приложения для сайта. Заранее спасибо.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.