Просмотреть журнал обновлений Изменения
Просмотреть План
yf-fpm-server — это легковесный сервер API, который позволяет интегрировать операции с данными баз данных (MySQL, MongoDB) через плагины, а также гибко расширять бизнес-логику.
Команда продукта начала с одного платформенного решения, но со временем расширилась до нескольких клиентских приложений, а также требует взаимодействия с несколькими независимыми системами. Поэтому требуется единый вход для ввода и вывода данных.- Node.js как событийно-ориентированное решение на основе движка V8 отлично подходит для работы с высоконагрузочными запросами, где нет необходимости в транзакционной целостности.
Сервер имеет только один вход /api, принимает только запросы в формате application/json
, определены следующие параметры:
Название параметра | Тип | Обязательность | Описание параметра | Значение по умолчанию | Пример |
---|---|---|---|---|---|
method | String | Да | Бизнес-функция, которую следует вызвать | - | - |
appkey | String | Да | Уникальный ключ приложения | - | - |
timestamp | Number | Да | Временная метка приложения, используемая для проверки актуальности запроса | - | 13-значная метка |
v | String | Нет | Версия вызываемого сервисного интерфейса | - | - |
param | Object | Нет | Параметры, необходимые для бизнес-функции, передаются в виде объекта JsonObject | - | - |
sign | String | Да | Сортировка параметров интерфейса в алфавитном порядке, добавление masterKey=xxx [ключ берется из зарегистрированного ключа], преобразование всех значений параметров в urlencode , применение MD5 шифрования, получение 32-битного ключа |
- | - |
:---------: | :--------: | :----------: | :------: | ||
errno | Число | Да | Код ошибки бизнес-функции, обычно равен 0, что указывает на успешное выполнение. Значение меньше 0 говорит о возникновении ошибки, причины которой можно узнать с помощью описаний приложения. | ||
message | Строка | Нет | В случае ошибки выводится сообщение об ошибке. | ||
timestamp | Число | Нет | Временная метка после завершения сервером обработки запроса. | ||
data | Объект/Массив | Да | Для типовых запросов бизнес-функции в этом поле содержится информация о результате запроса; конкретный тип данных — объект или массив — зависит от описаний различных бизнес-функций. | ||
error | Объект | Нет | Подробное описание ошибки |
Такое设计不能满足现在的RESTful范式,但能够满足小型团队的需求,可以提高业务实现的开发效率; такое дизайн не может удовлетворить современный RESTful парадигмы, но может удовлетворить потребности небольших команд, что повышает эффективность разработки реализации бизнеса.### 1. Установка
$ npm install yf-fpm-server --save
$ vi app.js
'use strict';
const { Fpm } = require('yf-fpm-server');
const fpm = new Fpm();
const biz = fpm.createBiz('0.0.1');
biz.addSubModules('test', {
foo: async (args, ctx, before) => {
return Promise.reject({ errno: -3001 })
}
});
fpm.addBizModules(biz);
fpm.run()
.then(() => {
fpm.logger.info('готово...');
});
$ node app.js
|:-----------:|:------:|:-------------------:|:-------------:| | -900 | LOST_PARAM | Отсутствует обязательный параметр: [${col}]! | Проверьте переданные параметры в запросе | | -901 | NO_POST_DATA | POST данные отсутствуют! | В запросе не переданы необходимые параметры | | -902 | TIMEZONE_OVER | Разница между временными зонами превышает 30 минут! | Проверьте временные метки в переданных данных | | -903 | SIGN_ERROR | Неверная цифровая подпись параметра! | Проверьте процесс подписывания параметров | | -904 | PLUGIN_LOAD_ERROR | Отсутствует плагин: ${pname}, требуемый плагин: ${dname} | Проверьте зависимости между плагинами | | -905 | PARAM_IS_NOT_JSON | Параметр Param не является корректным JSON! | Убедитесь, что переданные данные имеют правильный формат JSON | | -906 | SQL_INJECTION | В переданных данных найдены ключевые слова SQL: ['drop', 'delete', 'truncate', ';', 'insert', 'update', 'set', 'use'] | Проверьте данные на наличие SQL-внедрений | | -907 | NOT_LATEST | Не самый новый версионный номер | Обновите до последней версии | | -908 | NOT_METHOD | Не удалось найти метод! | Убедитесь, что вызываемый метод существует | | -909 | BIZ_MODULE_EXTEND_ERROR | Расширенный бизнес-модуль версии ${version} не существует! | Убедитесь, что расширяемый модуль имеет существующую версию | | -910 | TABLE_REQUIRED | Таблица обязательна при использовании плагина DB! | Убедитесь, что передана таблица || -911 | VERSION_UNDEFINED | Версия вызываемого бизнес-компонента не определена! | Убедитесь, что указана версия компонента | | -912 | AUTH_ERROR | Ошибка авторизации! Проверьте ваш appkey ~ | Ваш appkey не прошёл проверку | | -913 | ROOT_ERROR | Ошибка авторизации! Проверьте права доступа вашего app ~ | Убедитесь, что у вас достаточно прав доступа | | -914 | BIZ_VERSION_REQUIRED | Обязательна версия бизнес-компонента | Убедитесь, что указана версия компонента | | -915 | HOOK_VERSION_REQUIRED | Не определена версия хука | Убедитесь, что указана версия хука | | -916 | HOOK_HANDLER_REQUIRED | Не определён обработчик хука | Убедитесь, что указан обработчик хука | | -920 | UNDEFINED_EXCEPTION | Неопределённый тип исключения | Проверьте код на наличие ошибок | | -999 | UNCAUGHT_ERROR | Системная незахватанная ошибка | Проверьте систему на наличие ошибок |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )