Форум OlegON > Ресурсы OlegON > Вопросы сервера > База штрихкодов

Доступ через API к базе штрихкодов

05.06.2020 10:46


24.02.2017 13:32
OlegON
 
Описание API ресурса https://barcodes.olegon.ru

Список пополняется редактированием. Вы можете попросить какой-то более удобный для Вас формат запроса-ответа, создав тему в этом разделе.

REST
База штрихкодов поддерживает формат RESTful web-API, возвращая статус ответа и массив объектов в формате JSON. По умолчанию ответы выдаются в JSON unescaped, в кодировке UTF-8.

Коды ответов совпадают с кодами HTTP и в большинстве случаев отдаются, как по протоколам HTTP/HTTPS, так и в ответе JSON.
Основные коды ответов: 200 - запрос успешный, 400 - неправильные параметры запроса, 404 - данные отсутствуют, 429 - слишком частые запросы.

Запрос наименования по штрихкоду
Код:
http://barcodes.olegon.ru/api/card/name/<ШТРИХКОД>
Выдает код ответа и массив наименований для штрихкода, обозначенного в <ШТРИХКОД> (<> указывать не надо)
Цитата:
{"status":X,"names":[""]}
Запрос группы классификатора по штрихкоду
Код:
http://barcodes.olegon.ru/api/card/class/<ШТРИХКОД>
Выдает код ответа и массив групп классификатора для штрихкода, обозначенного в <ШТРИХКОД> (<> указывать не надо)
Цитата:
{"status":X,"class":[""]}
Ключ для безлимитных запросов
Код:
http://barcodes.olegon.ru/api/card/class/<ШТРИХКОД>/<КЛЮЧ>
В этом случае ограничения на частоту запросов ближе к ограничениям железа (если требуется более 3 запросов в секунду - прошу предупредить меня об этом, чтобы не сработала защита от DDoS), но за каждый запрос, в случае его успешности, будет сниматься один балл с привязанного к ключу счета. Зарегистрироваться для получения ключа можно здесь. Антибот-код доступа для регистрации - число, которое уже введено в поле кода, увеличенное на три. Т.е., если в поле указано 11, то надо ввести 14. Пополнить счет для безлимитных запросов или просто поддержать ресурс можно здесь. Обратите внимание, что учетки с нулевым балансом в начале каждого месяца удаляются. При перерегистрации в этом случае будет выдан новый ключ!
Вы можете узнать, сколько на ключе осталось средств, выполнив запрос
Код:
http://barcodes.olegon.ru/api/card/billing/0/<КЛЮЧ>
В ответ будет массив вида
Цитата:
{"status":200,"tries":X}
Где Х - количество оставшихся попыток на заданном ключе.
В любом случае, если ключ неправильный или попытки исчерпаны - выдается ошибка 402.

Пополнение базы штрихкодов
Код:
http://barcodes.olegon.ru/api/card/name/<ШТРИХКОД>
на тот же адрес (в соответствии с REST), необходимо POST-запросом отправить в параметре card отправить JSON-массив, содержащий name - имя карточки товара, class - группа классификатора карточки, count - единица измерения, producer - производитель товара. Для упрощения приведу пример с curl
Код:
curl --http1.1 -d 'card={"name":"ТЕСТОВАЯ ХРЕНОВИНА","class":"ТЕСТОВЫЕ ТОВАРЫ","count":"1шт.","producer":"МОСКВА"}' http://barcodes.olegon.ru/card/name/220000000000
Параметры, кроме наименования, необязательные.
Помимо этого, с радостью приму от вас текстовый файл с разделителями, содержащий минимум связку штрихкод-наименование.
07.05.2017 09:11
OlegON
 
Обратите внимание, что игнорирующие 429 код попадают в бан.

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

Пополнять базу можно не только новыми карточками, но и более полными и правильными наименованиями.
26.04.2018 16:45
OlegON
 
По поводу пополнения баланса учетки еще раз подчеркну: учетки с нулевым балансом в начале месяца удаляются. Соответственно, пропадает и ключ. Если у вас давным давно учетка занулилась, то пополнять ее с тем же ключом нет никакого смысла, запросите новый. В противном случае просто сделаете мне подарок.
14.05.2020 19:39
OlegON
 
Теперь есть возможность запросить наименования сразу по нескольким штрихкодам.
Для этого подготовлен отдельный скрипт
Код:
http://barcodes.olegon.ru/searchln.php
Ему, в POST-запросе, необходимо передать параметрами:
json (false) - true/false, если true, то возвращаться список будет в формате JSON, в противном случае - CSV с разделителем табуляцией.
barlst - список штрихкодов для сопоставления с наименованиями товара. Каждый штрихкод на новой строке, т.е. c разделителем "\n". Штрихкоды подвергаются trim().
lickey - ключ для безлимитных запросов

Не рекомендуется запрашивать более 100000 штрихкодов за один раз. Теоретически сервер сможет передать и десятикратное количество. Но, я специально ограничил размер POST в 2М, поскольку разная нагрузка, разная скорость интернета, где-то может порваться.

Ответственность за получение штрихкодов на запрашивающем. Сервер попытается сразу прервать работу скрипта, если прервется связь. Однако, списание попыток в этом случае все равно произойдет до момента обнаружения обрыва связи.

Протестировать работу скрипта и посмотреть пример его работы можно здесь : https://olegon.ru/showthread.php?t=34026

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.