{"id":13937625,"url":"https://github.com/datacoon/apiready","last_synced_at":"2025-07-19T23:33:27.884Z","repository":{"id":10979815,"uuid":"13297982","full_name":"datacoon/apiready","owner":"datacoon","description":"Simple way to produce REST+JSON API from CSV file without headache","archived":false,"fork":true,"pushed_at":"2013-10-02T11:29:54.000Z","size":292,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-08T23:27:48.987Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ivbeg/apiready","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datacoon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-03T12:40:14.000Z","updated_at":"2022-02-27T11:05:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/datacoon/apiready","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datacoon%2Fapiready","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datacoon%2Fapiready/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datacoon%2Fapiready/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datacoon%2Fapiready/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datacoon","download_url":"https://codeload.github.com/datacoon/apiready/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226700628,"owners_count":17668678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-07T23:03:43.972Z","updated_at":"2024-11-27T06:30:36.565Z","avatar_url":"https://github.com/datacoon.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# API ready package\n\n\n _Russian_ (English below)\n\n## О проекте\n\nAPIReady - это модуль для Pythob для быстрого создания API на основе CSV файлов\n\n\n## Установка\n\nДля установки необходимы библиотеки\n\n\tsudo pip install dateutil\n\tsudo pip install pymongo\n\tsudo pip install tornadoweb\t\n\n## Использование\n\n### Анализ \n\nДля анализа используется скрипт apireader.py принимающий следующие параметры:\n\n* --format (-f) - формат входящего файла (сейчас CSV)\n* --source (-s) - источник, ссылка на файл\n* --delimiter (-d) - символ разделитель полей в CSV файле\n* --config (-c) - файл для сохранения конфигурации\n* --dictshare (-i) - уровень \"чувствительности\" к данным в словаре. Доля уникальных записей к общему числу по которой делается предположение что это словарь.\n* --update (-u) - обновить конфигурацию (не перезаписывать поля version и app_key)\n\n**Примеры**\n\n_Разбор данных_\nПреобразование файла с данными по российским послам \"allamb.tsv\" разделенного табуляцией в файл конфигурации \"amb.config\".\n\n\tpython apireader.py -f csv -s data/allamb.tsv -d '\\t' -c \"amb.config\" analyze \n\t\n\n\nПреобразование файла с данными по телефонам МЧС России \"phones.tsv\" разделенного запятыми в файл конфигурации \"mchsphones.config\".\n\n\tapireader.py -f csv -s data/phones.tsv -d ',' -c 'mchsphones.config' analyze\n\t\n\t\n__\n\n### Подготовка \n\nПри подготовке данных в базу загружаются сами данные и словари полученные на их основе.\n\n\n\tapireader.py -c 'mchsphones.config' prepare\n\n### Публикация\n\nПо команде \"serve\" стартует веб-сервер tornado который обслуживает все запросы:\n\n\tapireader.py -c 'mchsphones.config' serve\n\n\n## Точек входа\n\nAPI для доступа идет по следующим ссылкам\n\n\t/[app_key]/info  - базовая информация о массиве\n\t/[app_key]/list  - список всех записей\n\t/[app_key]/query - запрос в базу\n\t/[app_key]/dicts/[dict_key] - все записи словаря\n\t/[app_key]/key/[uniq_key] - пермалинк на конкретную запись\n\n**Пример**\n CSV файл посло с app_key = 'amb' и полями словарей 'firstname', 'rank', 'surname'\n\n\t/amb/info\n\t/amb/list\n\t/amb/query\n\t/amb/dicts/firstname - словарь имен\n\t/amb/dicts/surname  - словарь фамилий\n\n\n\n\n## Описание файла конфигурации\n\nФайлы конфигурации - это JSON файлы в определеной структуре.\n\n* **app_key** - уникальный ключ массива данных под которым он доступен\n* **count** - общее число записей в массиве данных\n* **num_fields** - число полей в массиве данных\n* **delimiter** - разделяющий символ (для CSV)\n* **fieldtypes** - список полей в массиве данных\n* **dictkeys** - список полей на основе которых формируются словари\n* **format** - формат файла массива данных\n* **source** - источний информации (ссылка на файл)\n* **version** - версия массива данных - используется в случаях когда может публиковаться несколько версий.\n\n\n\nПример конфигурационного файла:\n\n\t{'app_key': 'allamb',\n\t'count': 571,\n \t'delimiter': '\\\\t',\n \t'fieldtypes': {'age': 'int',\n\t\t\t\t'birthday': 'str',\n\t\t\t\t'department': 'str',\n\t\t\t\t'depjoindate': 'str',\n\t\t\t\t'ethnics': 'str',\n\t\t\t\t'firstname': 'str',\n\t\t\t\t'gender': 'str',\n\t\t\t\t'midname': 'str',\n\t\t\t\t'name': 'str',\n\t\t\t\t'position': 'str',\n\t\t\t\t'rank': 'str',\n\t\t\t\t'rankage': 'int',\n\t\t\t\t'rankdate': 'str',\n\t\t\t\t'surname': 'str'},\n \t'format': 'csv',\n \t'num_fields': 14,\n\t 'source': 'data/allamb.tsv',\n \t'version': None}\n\n\n_English_ (Russian above)\n\n## About project\n\nAPIReady 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.\n\n## Installation\n\nYou need to install following packages:\n\n\tsudo pip install dateutil\n\tsudo pip install pymongo\n\tsudo pip install tornadoweb\t\n\n## Usage\n\n### Analysis\n\n### Preparation\n\n### Running\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatacoon%2Fapiready","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatacoon%2Fapiready","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatacoon%2Fapiready/lists"}