Микросервис "Получать Notion HTML документа по API"

100 000 руб. за проект
26 ноября 2022, 15:28 • 4 отклика • 29 просмотров
Требуется создать serverless приложение, опубликованное в Яндекс.Клауд
(cloudnative, т.е. stateless приложение)

1. "Получить HTML документа"

1. На вход по API -- ключ клиента, ключ API в Notion и id документа, формат (всегда HTML)
2. На выходе - HTML код этого документа (можно использовать для этого в тч github.com/NotionX/react-notion-x ). Не требуется никаких нестандартных преобразований. Документ должен быть любым, в т.ч. непубличным (т.е. он только по API должен быть доступен)

Админка для добавления клиентов и их ключей (использовать yandex db).
При запросе, записывать в базу факт получения документа (дата/время, id клиента, количество блоков в документе).

API NOTION KEY для теста:
secret_mkBjwPpqgZEl7WoSKdx6mynWbowsttDOOhlmICQBxfF
По нему доступен этот документ:
https://www.notion.so/komplizierte/test-document-2...
id документа 2679dca5108040a5864be63d528e43c6

serverless Yandex доступна бесплатно для тестов, и база тоже
https://cloud.yandex.com/en-ru/solutions/serverles...


Стек не важен


=====


Второй этап:

API в этом же сервисе,
смысл "Копировать таблицы"
вход: ID таблицы мастер, ID таблицы slave, обновлять ли содержимое документа да-нет, список полей которые обновлять (по имени)

выход: синхронизированное обновление

В slave есть атрибут связи relation
1. В таблице проверить все обновленные/добавленные элементы в master с прошлой даты синхронизации этих таблиц
2. Обновить элементы в slave (добавить новые элементы, обновить содержимое старых) -- если указано обновлять документ, взять содержимое из элемента таблицы (которая сам по себе документ) и положить в элемент таблицы в slave. Обновить поля slave, указанные для синхронизации

В таблицу биллинга добавить количество блоков которые обновлены (сумма полей которые обновляются и сумма элементов в документе которые обновляются)