Как очень быстро превратить CSV файлы в API?

Для тех кто работает с CSV файлами и ищет возможности очень быстро публиковать их в виде API REST+JSON мы сделали специальный и очень простой инструмент который помогает опубликовать API максимально просто.

Инструмент называется APIReady, живет он на GitHub’е https://github.com/idalab/apiready с полностью открытым исходным кодом.

Что можно сделать с помощью этого инструмента?

Инструмент работает в 3 шага: анализ, подготовка и публикация API.

Анализ

На стадии анализа CSV файл исследуется и на его основе определяется какие справочники заложены в него и какого типа данные внутри. Для анализа используется скрипт apireader.py принимающий следующие параметры:

  • —format (-f) — формат входящего файла (сейчас CSV)
  • —source (-s) — источник, ссылка на файл
  • —delimiter (-d) — символ разделитель полей в CSV файле
  • —config (-c) — файл для сохранения конфигурации
  • —dictshare (-i) — уровень «чувствительности» к данным в словаре. Доля уникальных записей к общему числу по которой делается предположение что это словарь.
  • —update (-u) — обновить конфигурацию (не перезаписывать поля version и app_key)

Примеры анализа

Преобразование файла с данными по российским послам «allamb.tsv» разделенного табуляцией в файл конфигурации «amb.config».

python apireader.py -f csv -s data/allamb.tsv -d '\t' -c "amb.config" analyze 

Преобразование файла с данными по телефонам МЧС России «phones.tsv» разделенного запятыми в файл конфигурации «mchsphones.config».

apireader.py -f csv -s data/phones.tsv -d ',' -c 'mchsphones.config' analyze

Подготовка

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

apireader.py -c 'mchsphones.config' prepare

Публикация

Публикация превращает подготовленные данные в API. По команде «serve» стартует веб-сервер tornado который обслуживает все запросы:

apireader.py -c 'mchsphones.config' serve



Подробная инструкция тут - https://github.com/idalab/apiready/blob/master/README.md
Вот тут можно написать багу если найдете - https://github.com/idalab/apiready/issues

About This Author

Яндекс.Метрика