Лучшая база данных
Мы все знаем и любим Ноушен за его гибкость и пользу, но мало кто знает, на что способен этот инструмент в руках очумелого программиста. Сейчас узнаете.
Для начала что такое Ноушен на самом деле. Ноушен — это база данных с интерфейсом. У системы есть 2 основные сущности: 1) страница и 2) база данных. Там базы данных до самого низу, да.
Не стоит обманываться. Базы данных в Ноушене — это абстракция над страницами. Поэтому все в Ноушене — страница. Просто некоторые из них имеют одинаковые поля для удобства и объединены в коллекции — базы данных.
Зная это можно догадаться, что Ноушен можно использовать в качестве «Cистемы Управления Контентом». Сокращенно — СУК. Ноушен даже позволяет опубликовать страницы в интернет напрямую, но это не путь самурая. Самурай хочет свой дизайн и не хочет палить Ноушен. Поэтому путь приводит нас к Прикладному Интерфейсу Разработки.
Чтобы использовать ПИР от Ноушен СУК вам потребуется ключ. Его можно получить на странице https://www.notion.so/my-integrations.
ПИР у Ноушена очень прокачан и позволяет делать настоящие запросы к вашей базе данных. Вот пример на языке Clojure:
(require '[clj-http.client :as client])
(client/post "https://api.notion.com/v1/databases/<айди_вашей_базы>/query"
{:headers {:Notion-Version "2022-06-28"}
:content-type :json
:form-params {:filter {:or [{:property "In stock"
:checkbox {:equals true}}
{:property "Cost of next trip"
:number {:greater_than_or_equal_to 2}}]}
:sorts [{:property "Last ordered"
:direction "ascending"}]}})
Обратите внимание на параметр filter
:
{:filter {:or [{:property "In stock"
:checkbox {:equals true}}
{:property "Cost of next trip"
:number {:greater_than_or_equal_to 2}}]}
:sorts [{:property "Last ordered"
:direction "ascending"}]}
Мы просим строки, у которых свойство In Stock установлено в True, либо свойство Cost of next trip больше или равно 2. Результаты требуем отсортировать.
Ну и чем это не MySQL?
Однако чтобы этот запрос успешно выполнился вам нужен идентификатор базы данных. Его можно взять тыкнув на кнопку «Поделиться» в верхнем правом углу:
Вы получите примерно такую ссылку: https://www.notion.so/dima-rozhkov/6ab9ec9a516242e8abdafdfc762242f4?v=f02b44dcd3e02c7b8ebe4f725dcfea08&pvs=4
Где часть 6ab9ec9a516242e8abdafdfc762242f4
это искомый идентификатор базы, а f02b44dcd3e02c7b8ebe4f725dcfea08
идентификатор отображения, он вам не нужен.
Дальше сами разберетесь, под менее популярные языки навроде джаваскрипта даже есть готовые клиенты. Я такой использую на продакшоне в своем проекте.
Сесурити и доступы
Важный момент в Ноушене: чтобы ваше совнедрение получило доступ к базе данных вы должны явно добавить его на страницу. Для этого надо тыкнуть на кнопку с тремя точками в верхнем правом углу:
После этого ваше совнедрение должно заработать, а может даже заработать денег.
В телеграме можно найти ботов, которые будут публиковать сообщения в ноушен. Тем самым можно нивелировать тормозной интерфейс Ноушена и открывать его только с настольной ЭВМ.
Теперь вы знаете, что такое Ноушен на самом деле. Живите с этим.
Попробуйте Notion, он хорош не только как база данных: https://affiliate.notion.so/9ruaa8ti9bc6 (рефка)