Giter Site home page Giter Site logo

apiready's Introduction

API ready package

Russian (English below)

О проекте

APIReady - это модуль для Pythob для быстрого создания API на основе CSV файлов

Установка

Для установки необходимы библиотеки

sudo pip install dateutil
sudo pip install pymongo
sudo pip install tornadoweb	

Использование

Анализ

Для анализа используется скрипт 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

Публикация

По команде "serve" стартует веб-сервер tornado который обслуживает все запросы:

apireader.py -c 'mchsphones.config' serve

Точек входа

API для доступа идет по следующим ссылкам

/[app_key]/info  - базовая информация о массиве
/[app_key]/list  - список всех записей
/[app_key]/query - запрос в базу
/[app_key]/dicts/[dict_key] - все записи словаря
/[app_key]/key/[uniq_key] - пермалинк на конкретную запись

Пример CSV файл посло с app_key = 'amb' и полями словарей 'firstname', 'rank', 'surname'

/amb/info
/amb/list
/amb/query
/amb/dicts/firstname - словарь имен
/amb/dicts/surname  - словарь фамилий

Описание файла конфигурации

Файлы конфигурации - это JSON файлы в определеной структуре.

  • app_key - уникальный ключ массива данных под которым он доступен
  • count - общее число записей в массиве данных
  • num_fields - число полей в массиве данных
  • delimiter - разделяющий символ (для CSV)
  • fieldtypes - список полей в массиве данных
  • dictkeys - список полей на основе которых формируются словари
  • format - формат файла массива данных
  • source - источний информации (ссылка на файл)
  • version - версия массива данных - используется в случаях когда может публиковаться несколько версий.

Пример конфигурационного файла:

{'app_key': 'allamb',
'count': 571,
'delimiter': '\\t',
'fieldtypes': {'age': 'int',
			'birthday': 'str',
			'department': 'str',
			'depjoindate': 'str',
			'ethnics': 'str',
			'firstname': 'str',
			'gender': 'str',
			'midname': 'str',
			'name': 'str',
			'position': 'str',
			'rank': 'str',
			'rankage': 'int',
			'rankdate': 'str',
			'surname': 'str'},
'format': 'csv',
'num_fields': 14,
 'source': 'data/allamb.tsv',
'version': None}

English (Russian above)

About project

APIReady is python script and module for quick API creation. It uses provided data source like CSV file and builds REST+JSON API based on data provided.

Installation

You need to install following packages:

sudo pip install dateutil
sudo pip install pymongo
sudo pip install tornadoweb	

Usage

Analysis

Preparation

Running

apiready's People

Contributors

ivbeg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.