1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/CornWu-ApiPluginsFramework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Описание

ApiPluginsFramework — это фреймворк для разработки плагинов к Web API, который использует Flask в качестве обработчика HTTP-протокола и flasgger для тестирования HTTP.

Фреймворк позволяет разработчикам сосредоточиться на бизнес-логике, которая реализуется в плагинах.

В модулях плагинов информация об API задаётся с помощью декоратора @plugin_base.ModuleFunc.

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

Структура каталога кода

. ├── README.MD ├── docs (документы) │ ├── src (исходный код) ├── core (ядро) └── libs (библиотеки) └── plugins (плагины) └── utils (общие) └── main.py (запуск основной программы)

Структура каталогов плагинов

.ApiPluginsFramework │---Plugins │ │---Plugin1 (каталог плагина) │ ├── init.py (файл определения плагина) │ └── plugin_moduleX.py (файл модуля плагина) │ │---Plugin2 (каталог плагина) │ ├── init.py (файл определения плагина) │ └── plugin_moduleX.py (файл модуля плагина)

Среда выполнения

Python 2.7.*

Требования

flask flasgger logging

Запуск

python main.py

Стандарт разработки плагинов

Оформление файла определения плагина init.py:

#: определение класса плагина
class Plugin1(plugin_base.PluginBase):
    #: метод инициализации плагина
    def __init__(self, pluginName,pluginPath):
        super(Plugin1, self).__init__(pluginName,pluginPath)

    #: реализация интерфейса информации о плагине
    def GetAbout(self):
        return {
            "plugin_version": "1.0.0.1",
            "plugin_author": "CornWu",
            "plugin_description": "Тестовый плагин",
            "plugin_copyright": "海南新境界软件有限公司",
            "plugin_pubdate": "2018-08-20",
        }
#: создание экземпляра плагина
def createPluginInstance(pluginName,pluginPath):
    return Plugin1(pluginName,pluginPath)

Оформление файла модуля плагина plugin_module1.py:

Здесь сосредоточена бизнес-логика.

# -*- coding: utf-8 -*-
from libs import plugin_base

@plugin_base.ModuleFunc("/test.do",
                        ApiOperation = {
                            "Name": "Функционал тестирования 1",
                            "Description": "Описание функционала тестирования 1",
                            "NeedAuth": False
                        },
                        ApiParameter = {
                            "Description": "Информация о пользователе",
                            "Properties": {
                                "UserID": { "DataType": "string", "Description": "Идентификатор пользователя", "Required": True },
                                "UserName": { "DataType": "string", "Description": "Имя пользователя", "Required": True },
                                "UserStatus": { "DataType": "string", "Description": "Статус пользователя", "Enum": ["Stop","Start"], "Required": True },
                                "UserDept": {
                                    "DataType": "object", "Description": "Организационная структура", "Required": True,
                                    "Properties": {
                                        "DeptID": { "DataType": "string", "Description": "ID отдела", "Required": True },
                                        "DeptName": { "DataType": "string", "Description": "Название отдела", "Required": True }
                                    }
                                },
                                "UserCorps": {
                                    "DataType": "array", "Description": "Компании пользователя", "Required": True,
                                    "Items": {
                                        "DataType": "string"
                                    }
                                },
                                "UserRoles": {
                                    "DataType": "array", "Description": "Роли пользователя", "Required": True,
                                    "Items": {
                                        "DataType": "object",
                                        "Properties": {
                                            "RoleID": {"DataType": "string", "Description": "ID роли", "Required": True},
                                            "RoleName": {"DataType": "string", "Description": "Название роли", "Required": True}
                                        }
                                    }
                                }
                            }
                        },
                        ApiResponse = {
                            "Description": "Информация об отделе",
                            "DataType": "string",
                            "Properties": { ```
DeptID: {DataType: "string", Description: "部门ID", Required: True},
DeptName: {DataType: "string", Description: "部门名称", Required: True}
)
def PluginModuleFunc1(inParameter):
    isExist = inParameter.HasAttr("UserName")
    return inParameter.UserName

相关运行截图,基于ApiPluginsFramework

Flasgger界面

Flasgger1

Flasgger2

JS自动生成相关截图,基于ApiPluginsFramework

JS页面

ApiJs

ApiJs

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ApiPluginsFramework — это фреймворк для создания плагинов к Web API, который использует Flask для обработки HTTP-протокола и Flasgger для тестирования HTTP. Разработчикам нужно сосредоточиться только на бизнес-логике, которая реализуется в плагинах. В модуле плагина можно задать информацию об API с помощью декоратора @plugin_base.ModuleFunc. ... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/CornWu-ApiPluginsFramework.git
git@api.gitlife.ru:oschina-mirror/CornWu-ApiPluginsFramework.git
oschina-mirror
CornWu-ApiPluginsFramework
CornWu-ApiPluginsFramework
master