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

OSCHINA-MIRROR/vk-uni-vk-uni-cloud-router

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

Плагин: vk-unicloud-router

Автор: VK

Введение

Если вы любите программировать и хотите быстро начать работу с облачными разработками, мы рады предложить вам серию фреймворков vk-unicloud. Вам не нужно менять свои привычки в разработке, и вы можете легко начать работать с облачной разработкой.

Фреймворк содержит множество встроенных API и инструментов, которые помогут вам преодолеть препятствия для вашего бизнеса. Ваш проект будет готов на 50% сразу после начала работы (включая вход через WeChat, отправку SMS, проверку подлинности, кэширование, генерацию кода для мини-программ и т. д.).

Теперь у вас есть новый навык — просто используйте JavaScript, чтобы легко справиться с задачами как для клиентской, так и для серверной части.

Полный адрес проекта фреймворка:

Документация по клиентской части: нажмите здесь.

Документация по серверной части: нажмите здесь.

Основные функции и преимущества для разработчиков

  1. Реализация режима маршрутизации облачных функций (также поддерживает маршрутизацию облачных объектов).

    • 1.1. Режим маршрутизации не использует никаких сторонних пакетов и обладает высокой совместимостью и стабильностью.
    • 1.2. Уменьшение количества облачных функций, облачные функции имеют ограничение по количеству (можно реализовать несколько облачных функций с помощью одной облачной функции).
    • 1.3. Некоторые общие блоки кода можно разместить в общей области выполнения, что обеспечивает эффект общих функций и повышает коэффициент повторного использования кода, облегчая обслуживание.
    • 1.4. Можно свободно переключаться между средами разработки и производственными средами. В среде разработки можно использовать среду разработки, которая не влияет на онлайн-среду во время процесса разработки (конкретный метод переключения описан в документации).
    • 1.5. Улучшение форматирования журналов запросов облачных функций для более чёткого отображения журналов запросов (больше не нужно беспокоиться о разделении журналов и трудностях поиска).
    • 1.6. Возможность принудительного закрытия облачного сервиса (подходит для ситуаций, когда необходимо временно закрыть бэкенд-сервис, например, при миграции данных из Tencent Cloud в Alibaba Cloud, необходимо сначала закрыть сервис, иначе новые данные будут созданы во время миграции).
  2. Реализация глобального фильтра, который фильтрует незаконные запросы. Разработчикам не нужно заботиться о проблемах с разрешениями пользователей.

  3. Множество готовых JS API, избавляющих от необходимости создавать собственные решения.

  4. Множество готовых API облачных функций, помогающих в решении бизнес-задач и освобождающих разработчиков от необходимости создания собственных решений (вход через WeChat, отправка SMS, проверка подлинности, кэширование, создание кода для мини-программы и т.д.).

  5. Полная поддержка URL-адресации запросов облачных функций, разработчикам не нужно беспокоиться о получении параметров после URL-адресации.

  6. Интеграция с uni-id версии 3.3.28 (уже поддерживается отправка электронных писем и SMS-сообщений с проверкой подлинности).

    • 6.1. Поскольку почти каждое приложение обычно использует систему пользователей, официальная рекомендация заключается в том, чтобы все приложения uniCloud использовали uni-id в качестве системы пользователей. С единой системой учётных записей и различными плагинами, основанными на этой системе, разработчики могут свободно интегрировать эти плагины, обеспечивая согласованность данных.
    • 6.2. Одновременно это упрощает использование других пользователями плагинов, опубликованных издателями uniCloud, для интеграции передней и задней частей. Достаточно импортировать одну облачную функцию.
  7. Расширение до vk.userCenter на основе uni-id, предоставляющее доступ к API пользовательского центра через this.vk.userCenter (см. документацию).

  8. Объединение uni.callFunction и uni.request в одно целое, доступное через this.vk.callFunction.

  9. vk.baseDao — API базы данных, позволяющий даже новичкам легко обращаться к базе данных (см. документацию).

  10. vk.baseDao.selects — универсальный API для выбора данных из нескольких таблиц (см. документацию).

  11. Компонент выбора SKU для товаров (создание наиболее полного компонента выбора SKU для плагинов uniMarket) (см. документацию).

  12. Глубокая интеграция с Vuex (поддерживает постоянство), теперь можно легко использовать Vuex для чтения и сохранения данных (см. документацию).

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

  14. Настройка страниц, требующих входа в систему, или страниц, не требующих входа (на основе локального токена, без сетевых запросов, поддерживает подстановочные знаки) (см. документацию).

  15. Настройка доступных для совместного использования страниц или запрещённых для совместного использования страниц (поддержка подстановочных знаков) (см. документацию).

  16. vk.localStorage — инкапсуляция локального кэша, включая мониторинг обновлений и удаления кэша (см. документацию).

  17. Улучшенное форматирование журналов запросов облачных функций для более чётких журналов запросов.

  18. Возможность принудительно закрыть облачный сервис (подходит для ситуаций, когда необходимо временно закрыть бэкэнд-сервис, например, при миграции данных из Tencent Cloud в Alibaba Cloud, необходимо сначала закрыть сервис, иначе новые данные будут созданы во время миграции).

  19. Глобальный API кеширования данных, теперь можно легко использовать кеширование в облачных функциях (см. документацию).

  20. URL-переписывание облачных функций — первое место в мире (см. документацию).

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

Встроенные сервисы на стороне сервера

  1. API на стороне сервера WeChat mini-program (см. документацию).
  2. API на стороне сервера WeChat H5 (см. документацию).
  3. API на стороне сервера Baidu Open Platform (см. документацию).
  4. Отправка SMS (см. документацию).
  5. Отправка электронной почты (см. документацию).
  6. Redis (см. документацию vkdoc.fsq.pub/vk-redis/).

Адрес для ознакомления с некоторыми функциями API:

https://vkceyugu.cdn.bspapp.com/VKCEYUGU-vk-cloud-router-test/51de83e0-e9ae-11ea-81ea-f115fe74321c.png?x-oss-process=image/resize,h_250

Быстрый старт — шаги установки

Установка на стороне сервера (облачные функции)

Откройте каталог uniCloud/cloudfunctions. Промежуточное ПО — # промежуточный слой (фильтры, перехватчики) | └── node_modules — # npm-пакет | └── service — # логический слой (для написания бизнес-логики) | ── └── логическая структура каталогов слоя представлена ниже | ── util — # пакет утилит | ├── pubFunction.js — # пакет общих функций | └── smsUtil.js — # глобальный фильтр | ├── config.js — # функция инициализации конфигурации входа | └── index.js — # входная функция | └── package.json — # файл конфигурации сторонних зависимостей (автоматически генерируется при использовании npm) └─└── package-lock.json — # файл конфигурации сторонних зависимостей (автоматически генерируется при использовании npm)

Логическая структура слоя

Каталог router/service является логическим слоем

Следующие каталоги не являются обязательными, а просто рекомендуются для обеспечения единообразия разработки.

.
├── router-test — # функции маршрутизации (среда тестирования разработки)
│ └── ... — # ...
│ └── ... — # ...
└── └── ... — # ...

Логический слой каталога структуры

router/service каталог является логическим слоем.

Ниже представлена структура каталогов, которая не является обязательной, а лишь рекомендацией для удобства унифицированной разработки.

.
├── service — # логический слой (используется для написания бизнес-логики)
│ └── admin — # логика бэкэнда (разработка фреймворка admin...)
│   ├── xxxxxxxxxxxxxxx — # 
│   ├── xxxxxxxxxxxxxxx — # 
│   ├── xxxxxxxxxxxxxxx — # 
│   └── xxxxxxxxxxxxxxx — # 
│ ├── client — # клиентская логика (H5, мини-программа, приложение)
│   ├── user — # сервис пользователя (собственная система логики)
│     ├── kh — # kh-функции доступны только после входа в систему
│     └── pub — # pub-функции доступны всем без ограничений
│     └── util — # набор инструментов, специфичных для пользовательского сервиса
│   ├── order — # служба заказа (собственная системная логика)
│     ├── kh — # kh-функции доступны только после входа в систему
│     └── pub — # pub-функции доступны всем без ограничений
│     └── util — # набор инструментов, специфичных для службы заказов
│   ├── xxxxxxxxxxxxxxxx — # 
│   ├── xxxxxxxxxxxxxxxx — # 
│   └── common — # общая логика (общий интерфейс)
│       ├── xxxxxxxxxxxxxxxx — # 
│       └── xxxxxxxxxxxxxxxx — # 
│       └── xxxxxxxxxxxxxxxx — # 
│ └── user — # единый центр обслуживания пользователей (уже интегрирован uniID) (центр пользователей является основным и для удобства обновления плагинов, поэтому он находится на одном уровне с admin и client)
│   ├── kh — # kh-функции доступны только после входа в систему (клиентские пользователи)
│   ├── pub — # pub-функции доступны всем без ограничений
│   └── sys — # sys-функции доступны только администраторам бэкэнда (сотрудники бэкэнда компании)
│   └── util — # набор инструментов, специфичных для единого центра обслуживания пользователей
│ └── plugs — # логика плагина (плагин) (будет постепенно добавляться несколько полезных плагинов для разработчиков, таких как отправка сообщений подписки через мини-программу WeChat и т. д.)
│   ├── plugs-A — # плагин A
│   │   ├── admin — # админ-панель плагина A
│   │   └── client — # клиентский интерфейс плагина A
│   ├── plugs-B — # плагин B
│   │   ├── admin — # админ-панель плагина B
│   │   └── client — # клиентский интерфейс плагина B
│   └── template — # облачная функция шаблона (шаблон написания облачной функции в плагине)
│       ├── db_api — # шаблон вызова интерфейса базы данных
│       └── muban.js — # шаблон облачной функции (создайте новую облачную функцию, скопируйте и вставьте этот файл)
│       └── muban_easy.js — # шаблон облачной функции (упрощённая версия)
└─────────────────────────────────

Пример файла шаблона облачной функции service

module.exports = {
  /**
  * Имя этой функции
  * @url user/sys/test1 — URL-адрес параметра запроса переднего конца
  * @description Описание этой функции
  * @params {Object} data — параметры запроса
  * @params {String} uniIdToken — токен пользователя
  * @params {String} userInfo — информация о текущем вошедшем пользователе (аналогично, это доверенный) (только kh-функция имеет этот параметр)
  * @params {Object} util — общий набор инструментов
    * @params {Object} filterResponse — данные ответа фильтра
  * @params {Object} originalParam — исходные параметры запроса (включая исходное событие и контекст)
  * Данные параметров запроса объясняют
  * @params {String} uid — идентификатор текущего вошедшего пользователя, если пользователь вошёл в систему и токен действителен, то данные будут содержать параметр uid
  * (Этот параметр является фильтром бэкэнда, который получает и добавляет его в данные через токен, и ему можно доверять) (только kh-функция имеет этот параметр)
  * res — объяснение возвращаемых параметров
  * @params {Number} code — код ошибки, 0 означает успех
  * @params {String} msg — подробная информация
  */
  main: async (event) => {
    let { data = {}, userInfo, util, filterResponse, originalParam } = event;
    let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
    let { uid } = data;
    let res = { code : 0, msg : '' };
    // Бизнес-логика начинается ---------------------------------------------- 
    // Можно написать логику взаимодействия с базой данных и так далее
  
  
    // Завершение бизнес-логики ----------------------------------------------
    return res;
  }
}

Успешный возврат

// Обратите внимание: все успешные запросы должны возвращать code: 0 code - это другие значения, указывающие на сбой, например, обмен не удался, ваши очки недостаточны!
// Если успешно, верните res.code = 0, чтобы указать, что выполнение выполнено;
return {
  code : 0,
  msg : 'Обмен успешен!' 
}

Неудачный возврат

return {
  code : -1,
  msg : 'Обмен не удался, ваших очков недостаточно!'
}

``` Запрос функции при сбое
 * @params {Function} complete  функция обратного вызова, которая выполняется независимо от того, успешен запрос или нет
 */

Пример вызова облачной функции из фронтенда

this.vk.callFunction({
    url: 'user/kh/setAvatar',
    title:'Запрос...',
    data:{
        avatar: "https://xxxxxxx.jpg"
    },
    success(data) {
        // Успешное изменение
    }
});

Пример использования облачных функций через URL-адресацию

Нажмите здесь, чтобы увидеть пример использования «облачных функций через URL»

Перехватчик для обнаружения недействительных токенов во фронтенде

Перейдите по ссылке, чтобы узнать о «перехватчике для обнаружения недействительных токенов»

API базы данных vk.baseDao

Ознакомьтесь с API базы данных «vk.baseDao» здесь

Настройка глобальных параметров запросов

Узнайте, как настроить глобальные параметры запросов

Шаблоны для рендеринга списков на стороне клиента и сервера

Посмотрите шаблоны для рендеринга списков

Компонент выбора SKU для товаров

Подробнее о компоненте выбора SKU

Как переключиться между рабочей и тестовой средой

Прочитайте о том, как переключаться между рабочей и тестовой средами

Этапы обновления плагина

Изучите этапы обновления плагина

Если вы считаете, что фреймворк полезен, вы можете оставить комментарий или поддержать проект.

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

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

Введение

Включи и пользуйся: VK Cloud Functions — маршрутизация в uniCloud, фреймворк для разработки — уже интегрирован uni-id. Развернуть Свернуть
MIT
Отмена

Обновления (1)

все

Участники

все

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

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