get запрос php api

GET info from external API/URL using PHP

I have the URL http://api.minetools.eu/ping/play.desnia.net/25565 which outputs statistics of my server.

I want to get the value of online player count to display it on my website as: Online Players: online amount

get запрос php api. Смотреть фото get запрос php api. Смотреть картинку get запрос php api. Картинка про get запрос php api. Фото get запрос php api

4 Answers 4

1) Don’t use file_get_contents() (If you can help it)

This is because you’d need to enable fopen_wrappers to enable file_get_contents() to work on an external source. Sometimes this is closed (depending on your host; like shared hosting), so your application will break.

Generally a good alternative is curl()

2) Using curl() to perform a GET request

3) Using the response

The response comes back in a JSON object. We can use json_decode() to put this into a usable object or array.

Your server is returning a JSON string. So you should use json_decode() function to convert that into a plain PHP object. Thereafter you can access any variable of that object.

So, something like this shall help

get запрос php api. Смотреть фото get запрос php api. Смотреть картинку get запрос php api. Картинка про get запрос php api. Фото get запрос php api

In short, something like:

I’d also wrap the entire thing in a function or class method to keep your code tidy. A simple «almost complete» solution could look like this:

Источник

Пишем свой API для сайта с использованием Apache, PHP и MySQL

С чего все началось

Разрабатывая проект, я столкнулся с необходимостью организации клиент-серверного взаимодействия приложений на платформах iOS и Android с моим сайтом на котором хранилась вся информация — собственно БД на mysql, картинки, файлы и другой контент.
Задачи которые нужно было решать — достаточно простые:
регистрация/авторизация пользователя;
отправка/получение неких данных (например список товаров).

И тут-то мне захотелось написать свой API для взаимодействия с серверной стороной — большей своей частью для практического интереса.

Входные данные

В своем распоряжении я имел:
Сервер — Apache, PHP 5.0, MySQL 5.0
Клиент — Android, iOS устройства, любой браузер

Я решил, что для запросов к серверу и ответов от него буду использовать JSON формат данных — за его простоту и нативную поддержку в PHP и Android. Здесь меня огорчила iOS — у нее нет нативной поддержки JSON (тут пришлось использовать стороннюю разработку).

Внешний вид запросов решено было сделать таким:
http://[адрес сервера]/[путь к папке api]/?[название_api].[название_метода]=[JSON вида <«Hello»:«Hello world»>]

Путь к папке api — каталог на который нужно делать запросы, в корне которого лежит файл index.php — он и отвечает за вызов функций и обработку ошибок
Название api — для удобства я решил разделить API группы — пользователь, база данных, конент и тд. В таком случае каждый api получил свое название
Название метода — имя метода который нужно вызвать в указанном api
JSON — строковое представление JSON объекта для параметров метода

Скелет API

Скелет API на серверной стороне состоит из нескольких базовых классов:
index.php — индексный файл каталога в Apache на него приходятся все вызовы API, он осуществляет парсинг параметров и вызов API методов
MySQLiWorker — класс-одиночка для работы с базой MySQL через MySQLi
apiBaseCalss.php — родительский класс для всех API в системе — каждый API должен быть наследован от этого класса для корректной работы
apiEngine.php — основной класс системы — осуществляет разбор переданных параметров (после их предварительного парсинга в index.php) подключение нужного класса api (через require_once метод), вызов в нем нужного метода и возврат результата в JSON формате
apiConstants.php — класс с константами для api вызовов и передачи ошибок
apitest.php — тестовый api для тестирования новых методов перед их включением в продакшн версию

Теперь подробней о каждом

Я попробовал достаточно документировать файлы, чтобы не занимать много место под текст. Однако в тех файлах где нет комментариев, я все ж приведу описание.

Index.php

Как уже говорил раньше это входной индексный файл для Apache а значит все вызовы вида www.example.com/api будет принимать он.

Первым делом устанавливаем тип контента — text/html (потом можно сменить в самих методах) и кодировку — UTF-8.
Дальше проверяем, что у нас что-то запрашивают. Если нет то выводим JSON c ошибкой.
Если есть параметры запроса, то подключаем файл движка API — apiEngine.php и создаем класс движка с переданными параметрами и делаем вызов api метода.
Выходим из цикла так как мы решили что будем обрабатывать только один вызов.

apiEngine.php

Вторым по важности является класс apiEngine — он представляет собой движок для вызова api и их методов.

apiConstants.php

Данный класс используется только для хранения констант.

MySQLiWorker.php

Класс-одиночка для работы с базой. В прочем это обычный одиночка — таких примеров в сети очень много.

apiBaseClass.php

Ну вот мы подошли к одному из самых важных классов системы — базовый класс для всех API в системе.

Как видно данный класс содержит в себе несколько «утилитных» методов, таких как:
конструктор в котором осуществляется соединение с базой, если текущее API собирается работать с базой;
деструктор — следит за освобождением ресурсов — разрыв установленного соединения с базой
createDefaultJson — создает дефолтный JSON для ответа метода
fillJSON — если подразумевается что запрос вернет только одну запись, то данный метод заполнит JSON для ответа данными из первой строки ответа от БД

Создадим свой API

Вот собственно и весь костяк этого API. Теперь рассмотрим как же это все использовать на примере создания первого API под названием apitest. И напишем в нем пару простых функций:
одну без параметров
одну с параметрами и их же она нам и вернет, чтобы было видно, что она их прочитала
одну которая вернет нам бинарные данные

И так создаем класс apitest.php следующего содержания

Для удобства тестирования методов, я дописываю к ним адрес по которому я могу сделать быстрый запрос для тестирования.

И так у нас три метода

helloAPI

Это простой метод без параметров. Его адрес для GET вызова www.example.com/api/?apitest.helloAPI=<>

Результатом выполнения будет вот такая страница (в браузере)

get запрос php api. Смотреть фото get запрос php api. Смотреть картинку get запрос php api. Картинка про get запрос php api. Фото get запрос php api

helloAPIWithParams

Этот метод принимает в параметры. Обязательным является TestParamOne, для него и сделаем проверку. Его его не передать, то будет выдан JSON с ошибкой

get запрос php api. Смотреть фото get запрос php api. Смотреть картинку get запрос php api. Картинка про get запрос php api. Фото get запрос php api

helloAPIResponseBinary

И последний метод helloAPIResponseBinary — вернет бинарные данные — картинку хабра о несуществующей странице (в качестве примера)

Как видно — здесь есть подмена заголовка для вывода графического контента.
Результат будет такой

get запрос php api. Смотреть фото get запрос php api. Смотреть картинку get запрос php api. Картинка про get запрос php api. Фото get запрос php api

Есть над чем работать

Для дальнейшего развития необходимо сделать авторизация пользователей, чтобы ввести разграничение прав на вызов запросов — какие-то оставить свободными, а какие-то только при авторизации пользователя.

Ссылки

Для тестирования выложил все файлы на github — simpleAPI

Источник

В данной статье вы узнаете, как создать простой REST API в PHP.

1. Обзор проекта

1.1 Что такое REST API?

REST API позволяет вашему приложению взаимодействовать с одним или несколькими различными приложениями, используя концепции REST.

1.2 Зачем нужен REST API?

Во многих приложениях REST API необходим, потому что это самый легкий способ создания, чтения, обновления или удаления информации между различными приложениями через Интернет или протокол HTTP. Эта информация представляется пользователю в одно мгновение, особенно если вы используете JavaScript для отображения данных на веб-странице.

1.3 Где используется REST API?

REST API может использоваться любым приложением, которое может подключаться к Интернету. Если данные из приложения могут быть созданы, прочитаны, обновлены или удалены с помощью другого приложения, это обычно означает, что используется REST API.

2. Файловая структура

3. Настройка базы данных

3.1 Создание таблицы категорий

3.2 Дамп данных для таблицы категорий

3.3 Создание таблицы товаров

3.4 Дамп данных для таблицы товаров

3.5 Подключение к базе данных

Приведенный ниже код показывает учетные данные базы данных и метод для получения подключения к базе данных с помощью PDO.

Создайте папку api и откройте её. Создайте папку config и в ней создайте файл database.php со следующим кодом.

4. Получение товаров

4.1 Создание объекта Product

Код ниже содержит класс с именем Product и несколько свойств. Также показан метод конструктора, который принимает соединение с базой данных.

4.2 Создание файла для чтения товаров

Код ниже содержит заголовки о том, кто может читать этот файл и какой тип содержимого он будет возвращать.

4.3 Подключение к базе данных и таблице товаров

Замените комментарий // подключение к базе данных будет здесь в файле read.php следующим кодом.

4.4 Чтение товаров из базы данных

Замените комментарий // чтение товаров будет здесь в файле read.php следующим кодом.

4.5 Создание метода read()

4.6 Уведомление пользователя о том, что товары не найдены

Замените комментарий // ‘товары не найдены’ будет здесь в файле read.php следующим кодом.

5. Создание товаров

5.1 Создание файла create.php

Откройте папку product и создайте в ней файл create.php со следующим содержимым.

5.2 Создание метода create()

6. Получение одного товара

6.1 Создание файла read_one.php

6.2 Создание метода readOne()

7. Обновление товара

7.1 Создание файла update.php

7.2 Создание метода update()

8. Удаление товара

8.1 Создание файла delete.php

Откройте папку product и создайте файл delete.php со следующим содержимым.

8.2 Создание метода delete()

9. Поиск товаров

9.1 Создание файла search.php

В папке product создайте файл search.php со следующим кодом.

9.2 Создание метода search()

10. Пагинация товаров

10.1 Создание файла read_paging.php

В папке product создайте файл read_paging.php со следующим кодом.

10.2 Создание файла core.php

Этот файл содержит нашу базовую конфигурацию, такую как базовый URL и переменные пагинации.

Откройте папку config и создайте в ней файл core.php со следующим содержимым.

10.3 Создание метода readPaging()

10.4 Создание метода count()

Так же в классе Product (файл product.php) добавьте метод count() для создания массива пагинации.

10.5 Получение массива пагинации

11. Получение категорий

11.1 Создание объекта Category

Откройте папку objects и создайте новый файл category.php со следующим кодом.

11.2 Создание файла read.php

Создайте новую папку category в корне, и в ней файл read.php со следующим кодом.

11.3 Создание метода read()

Если вам понравилась данная статья, рекомендую к прочтению создание регистрации и авторизации в php с использованием JWT.

Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.

Источник

API (Application Programming Interface)

МетодОписание
Метод возвращает подробный анализ финансового состояния организации по сравнению с отраслевыми и общероссийскими показателями.
Метод возвращает краткий анализ финансового состояния организации по сравнению с отраслевыми и общероссийскими показателями.
Метод возвращает подробный анализ сравнения финансового состояния двух организаций.
Метод возвращает подробный анализ финансового состояния организации по данным, введенным вручную.
Метод проверяет есть ли фирма с заданым ИНН в базе и возможно ли получить по ней анализ.

Общий принцип работы

Взаимодействие с API происходит по протоколу HTTPS методом POST.

URL доступа к API:
https://www.testfirm.ru/api/

Если купон указан, то выдаются данные за 2020 год, иначе за 2019.

Примеры выполнения запроса к API (на PHP)

Результат выполнения запроса к API

Результат всегда возвращается в формате JSON.

В случае неуспешного выполнения запроса возвращаются поля status, error_code, error_text:

В случае успешного выполнения запроса возвращаются поля status и data:

Метод getOrganization

Метод возвращает подробный анализ финансового состояния организации по сравнению с отраслевыми и общероссийскими показателями.

Обязательным параметром для данного метода является inn (ИНН организации).

Описание формата возвращаемых данных (поле data)

Если организация не найдена, возвращается пустой массив.

КлючОписание
urlАдрес страницы результата анализа на сайте. Если организация не найдена, данный параметр не возвращается.
coefs_yearГод за который расчитаны среднеотраслевые показатели.
orgМассив с основными данными об организации. Если организация не найдена, данный массив не возвращается.
org → innИНН организации.
org → nameНазвание организации.
org → okvedКод ОКВЭД.
org → okved_textНазвание ОКВЭД.
org → revenueВыручка (в рублях, может отсутствовать).
org → assetsАктивы (в рублях, может отсутствовать).
org → org_groupКатегория предприятия.
org → org_group_textНазвание категории предприятия.
org → regionКод региона.
org → region_textНазвание региона.
org → stat_yearГод, за который использовалась отчетность для анализа.
org → last_yearПоследний год за который есть отчетность.
taxДополнительные данные ФНС, если они были предоставлены.
tax → employeesСреднесписочная численности работников по данным ФНС.
tax → employees → yearЗа какой год выдаются данные.
tax → employees → dataКоличество работников.
tax → tax_systemИспользуемые специальные налоговые режимы.
tax → taxesИнформация об уплаченных налогах.
tax → taxes → yearЗа какой год данные.
tax → taxes → taxes_sumОбщая сумма.
tax → taxes → dataМассив уплаченных налогов с соответсвующими суммами.
tax → taxes → data → nameНаименование налога.
tax → taxes → data → valueСумма в рублях.
tax → tax_penaltiesИнформация о неуплаченных налогах, штафах, пенях.
tax → tax_penalties → yearЗа какой год данные.
tax → tax_penalties → tax_penalties_sumОбщая сумма.
tax → tax_penalties → dataМассив неуплаченных налогов, штафов, пеней с соответсвующими суммами, разбитые по типам.
tax → tax_penalties → data → nameНаименование.
tax → tax_penalties → data → itemsСписок неуплаченных налогов, штафов, пеней.
tax → tax_penalties → data → items → nameТип: неуплаченный налог, штаф, пеня.
tax → tax_penalties → data → items → valueСумма в рублях.
resultМассив с результатами анализа фин. состояния организации. Если для анализа не хватило данных отчетности, то данный массив не возвращается.
result → industryМассив с результатами анализа фин. состояния организации с отраслевыми показателями.
result → industry → okvedКод ОКВЭД, для которого проведен анализ с отраслевыми показателями (может отличаться от ОКВЭД организации, если в базе Росстата и ФНС нет данных).
result → industry → okved_textНазвание ОКВЭД.
result → industry → scoreИтоговый балл сравнения показателей организации с отраслевыми.
result → industry → score_textКраткий текст результата сравнения показателей организации с отраслевыми.
result → industry → score_longtextПолный текст результата сравнения показателей организации с отраслевыми.
result → allМассив с результатами анализа фин. состояния организации с общероссийскими показателями.
result → all → scoreИтоговый балл сравнения показателей организации с общероссийскими.
result → all → score_textКраткий текст результата сравнения показателей организации с общероссийскими.
result → all → score_longtextПолный текст результата сравнения показателей организации с общероссийскими.
changeИзменение финансового состояния за год. Если отсутствует отчетность за предыдущий год, то данный массив не возвращается.
change → valueИзменение финансового состояния (в баллах) за год.
change → value_textТекстовое описание изменения фин. состояния организации за год.
detailsПодробности анализа финансового состояния организации. Если для анализа не хватило данных отчетности, то данный массив не возвращается.
details → avtonomКод показателя.
details → avtonom → titleНазвание показателя.
details → avtonom → valueРассчитанное значение данного показателя для организации.
details → avtonom → industry_medianaМедианное значение данного показателя для отрасли.
details → avtonom → industry_rankБалл по итогам сравнения показателя организации с отраслевыми.
details → avtonom → all_medianaМедианное значение данного показателя для РФ.
details → avtonom → all_rankБалл по итогам сравнения показателя организации с общероссийскими.
warningsПредупреждения (может отсутствовать).
warnings → fns_no_reportПредупреждение, что организация не сдавала отчетность в ФНС более года.
warnings → fns_debtПредупреждение, что организация имеет превышающую 1000 рублей задолженность по уплате налогов.
full_reportСравнительный финансовый анализ показателей в формате HTML.
chartДанные для построения графика «История финансового состояния»
historyКак менялись выручка (revenue), прибыль (net_profit), активы (assets) и чистые активы (net_assets) фирмы
counterКоличество выполненных запросов за последние 30 дней.

Метод getOrganizationShort

Метод возвращает краткий анализ финансового состояния организации по сравнению с отраслевыми и общероссийскими показателями.

Обязательным параметром для данного метода является inn (ИНН организации).

Описание формата возвращаемых данных (поле data)

Если организация не найдена, возвращается пустой массив.

КлючОписание
urlАдрес страницы результата анализа на сайте.
nameНазвание организации.
last_yearПоследний год за который у фирмы есть отчетность.
coefs_yearГод за который расчитаны среднеотраслевые показатели.
industry_okvedКод ОКВЭД, для которого проведен анализ с отраслевыми показателями. Если для анализа не хватило данных отчетности, то данный параметр не возвращается.
industry_scoreИтоговый балл сравнения показателей организации с отраслевыми. Если для анализа не хватило данных отчетности, то данный параметр не возвращается.
industry_score_textПолный текст результата сравнения показателей организации с отраслевыми. Если для анализа не хватило данных отчетности, то данный параметр не возвращается.
all_scoreИтоговый балл сравнения показателей организации с общероссийскими. Если для анализа не хватило данных отчетности, то данный параметр не возвращается.
all_score_textПолный текст результата сравнения показателей организации с общероссийскими. Если для анализа не хватило данных отчетности, то данный параметр не возвращается.
counterКоличество выполненных запросов за последние 30 дней.

Метод compareOrganizations

Метод возвращает подробный анализ сравнения финансового состояния двух организаций.

Обязательными параметрами для данного метода являются:
inn1 (ИНН основной организации);
inn2 (ИНН организации-конкурента).

Описание формата возвращаемых данных (поле data)

Если организация не найдена, возвращается пустой массив.

КлючОписание
urlАдрес страницы результата анализа на сайте. Если организация не найдена, данный параметр не возвращается.
coefs_yearГод за который расчитаны среднеотраслевые показатели.
orgМассив с данными об основной организации. Если организация не найдена, данный массив не возвращается.
org → innИНН организации.
org → nameНазвание организации.
org → okvedКод ОКВЭД.
org → okved_textНазвание ОКВЭД.
org → revenueВыручка (в рублях, может отсутствовать).
org → assetsАктивы (в рублях, может отсутствовать).
org → org_groupКатегория организации по выручке.
org → org_group_textНазвание категории организации по выручке.
org → regionКод региона.
org → region_textНазвание региона.
org → stat_yearГод, за который использовалась отчетность для анализа.
competitorМассив с данными об организации-конкуренте. Если организация не найдена, данный массив не возвращается.
competitor → innИНН организации-конкурента.
competitor → nameНазвание организации-конкурента.
competitor → okvedКод ОКВЭД организации-конкурента.
competitor → okved_textНазвание ОКВЭД организации-конкурента.
competitor → revenueВыручка (в рублях) организации-конкурента (может отсутствовать).
competitor → assetsАктивы (в рублях) организации-конкурента (может отсутствовать).
competitor → org_groupКатегория организации-конкурента.
competitor → org_group_textНазвание категории организации-конкурента.
competitor → regionКод региона организации-конкурента.
competitor → region_textНазвание региона организации-конкурента.
competitor → stat_yearГод, за который использовалась отчетность для анализа.
resultМассив с результатами анализа фин. состояния основной организации. Если для анализа не хватило данных отчетности, то данный массив не возвращается.
result → industryМассив с результатами анализа фин. состояния основной организации с отраслевыми показателями.
result → industry → okvedКод ОКВЭД, для которого проведен анализ с отраслевыми показателями (может отличаться от ОКВЭД организации, если в базе Росстата и ФНС нет данных).
result → industry → okved_textНазвание ОКВЭД.
result → industry → scoreИтоговый балл сравнения показателей основной организации с отраслевыми.
result → industry → score_textКраткий текст результата сравнения показателей основной организации с отраслевыми.
result → industry → score_longtextПолный текст результата сравнения показателей основной организации с отраслевыми.
result → competitorМассив с результатами сравнительного анализа фин. состояния организации с показателями конкурента. Если для анализа не хватило данных отчетности о конкуренте, то данный массив не возвращается.
result → competitor → scoreИтоговый балл сравнения показателей организации с конкурентом.
result → competitor → score_textКраткий текст результата сравнения показателей организации с конкурентом.
result → competitor → score_longtextПолный текст результата сравнения показателей организации с конкурентом.
changeИзменение финансового состояния основной организации за год. Если отсутствует отчетность за предыдущий год, то данный массив не возвращается.
change → valueИзменение финансового состояния основной организации (в баллах) за год.
change → value_textТекстовое описание изменения фин. состояния основной организации за год.
detailsПодробности анализа финансового состояния организации. Если для анализа не хватило данных отчетности, то данный массив не возвращается.
details → avtonomКод показателя.
details → avtonom → titleНазвание показателя.
details → avtonom → valueРассчитанное значение данного показателя для основной организации.
details → avtonom → industry_medianaМедианное значение данного показателя для отрасли.
details → avtonom → industry_rankБалл по итогам сравнения показателя основной организации с отраслевыми.
details → avtonom → competitor_valueРассчитанное значение данного показателя для организации-конкурента (может отсутствовать).
details → avtonom → competitor_rankБалл по итогам сравнения показателя основной организации с конкурентом (может отсутствовать).
counterКоличество выполненных запросов за последние 30 дней.

Метод calculateInputData

Метод возвращает подробный анализ финансового состояния организации по данным, введенным вручную.

Описание формата возвращаемых данных (поле data)

Если данных для анализа недостаточно, возвращается пустой массив.

КлючОписание
resultМассив с результатами анализа фин. состояния организации. Если для анализа не хватило данных отчетности, то данный массив не возвращается.
result → industryМассив с результатами анализа фин. состояния организации с отраслевыми показателями.
result → industry → okvedКод ОКВЭД, для которого проведен анализ с отраслевыми показателями (может отличаться от ОКВЭД организации, если в базе Росстата и ФНС нет данных).
result → industry → okved_textНазвание ОКВЭД.
result → industry → scoreИтоговый балл сравнения показателей организации с отраслевыми.
result → industry → score_textКраткий текст результата сравнения показателей организации с отраслевыми.
result → industry → score_longtextПолный текст результата сравнения показателей организации с отраслевыми.
result → allМассив с результатами анализа фин. состояния организации с общероссийскими показателями.
result → all → scoreИтоговый балл сравнения показателей организации с общероссийскими.
result → all → score_textКраткий текст результата сравнения показателей организации с общероссийскими.
result → all → score_longtextПолный текст результата сравнения показателей организации с общероссийскими.
detailsПодробности анализа финансового состояния организации. Если для анализа не хватило данных отчетности, то данный массив не возвращается.
details → avtonomКод показателя.
details → avtonom → titleНазвание показателя.
details → avtonom → valueРассчитанное значение данного показателя для организации.
details → avtonom → industry_medianaМедианное значение данного показателя для отрасли.
details → avtonom → industry_rankБалл по итогам сравнения показателя организации с отраслевыми.
details → avtonom → all_medianaМедианное значение данного показателя для РФ.
details → avtonom → all_rankБалл по итогам сравнения показателя организации с общероссийскими.
counterКоличество выполненных запросов за последние 30 дней.

Метод checkOrganization

Метод проверяет содержится ли фирма с указанынм ИНН в базе, а так же можно ли получить по ней анализ финансового состояния.

Обязательным параметром для данного метода является inn (ИНН организации).

Описание формата возвращаемых данных (поле data)

Источник

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

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