вступление
AppWrite – это открытый источник, самих организовал Backend-As-A-Service, которая делает разработку приложений легче С набором SDK и API для ускорения разработки приложений. # 30daysofappwrite Месячное мероприятие было сосредоточено на том, чтобы дать разработчикам прохождение всех функций AppWrite, начиная с основ для более продвинутых функций, таких как облачные функции! Наряду с которыми мы также будем строить полностью извлеченный средний клон, чтобы продемонстрировать, как эти концепции могут применяться при создании приложения реального мира. У нас также есть интересные призы для разработчиков, которые следуют вместе с нами!
Добро пожаловать на день 15 👋. Сегодня, наконец, день для покрытия хранения данных в базе данных AppWrite. AppWrite предлагает простое в использовании, API базы данных на основе документов для хранения данных вашего приложения. Мы построили наш интерфейс NoSQL на вершине Mariadb, вдохновленный Wix кто сделал то же самое. Mariadb предоставляет свою стабильность и производительность и производительность, и вы можете управлять AppWrite, используя существующие, знакомые инструменты базы данных, такие как MySqlworkbench, phpmyadmin и многое другое. Коллекции, документы, правила и разрешения могут управляться с консолью Appwrite, или с любым из наших Sdks Отказ Там много, чтобы покрыть, поэтому давайте погрузимся.
Refactor базы данных ведет для улучшения общей производительности и добавить поддержку различных баз данных, включая PostgreSQL, MongoDB и многое другое!
Глоссарий
Каждая база данных поставляется с собственным набором технического жаргона – до того, как мы зайдем слишком далеко, давайте перейдем на нашу.
- Коллекция : Группа Документы Отказ Каждый Коллекция есть правила определить его документ Структура и Разрешения для читать и Напишите Отказ
- Документ : Структурированный объект JSON Ключи и ценности , принадлежащий к Коллекция Отказ Ключи И их типы определены в Коллекция правила .
- Правила : Определение каждого Документ атрибут. У этого есть этикетка , ключ и Тип правила . Думайте о них как о столбцах в традиционной реляционной базе данных. У столбцов есть имя , стоимость и тип
- Разрешения : Массив строк, которые определяют контроль доступа к Документы , Коллекции и файлы в хранилище.
Теперь давайте рассмотрим каждый более подробно.
Коллекции и документы
Короче говоря: Коллекции Держать Документы Отказ Если вы ветеран SQL, вы можете узнать это лучше, как Столы и Ряды (и внутренне, это технически правильно). Каждая коллекция получает уникальную, случайную Коллекция
и проводит документы (другими словами, необработанные данные). Вид данных, которые AppWrite принимает, управляется Атрибут правила определен для сбора.
Правила
Проще говоря, правила Опишите, как следует выглядеть ваши документы. С помощью этого подхода валидаторы правила Appwrite гарантируют, что данные, идущие в вашу базу данных, – это точный формат, который вы ожидаете. Итак, для каждой ключевой пары нашего документа мы предоставляем:
- А этикетка , только для отображения
- Имя ключ
- правило тип
- по умолчанию стоимость
- Если ключ требуется
- Если значение является множество
Вот валидаторы доступны для Типы правил :
текст | Любое строковое значение. |
численность | Любое целое или плавающее значение. |
логический | Любое логическое значение. |
подстановочный знак | Любое значение. |
урл | Любой действительный URL. |
Эл. адрес | Любой действующий адрес электронной почты |
ип | Любой действительный адрес IPv4 или IPv6 |
Разрешения
Чтобы контролировать доступ к ресурсам, AppWrite предлагает разработчикам гибкую систему разрешений, которая знает о пользователях Appwrite и командам. Давайте охватим наиболее использование разрешений:
* | Разрешение подстановки. Предоставляет кому-либо чтение или запись доступа. |
Пользователь: [usid] | Предоставляет доступ к конкретному пользователю по UserID. |
Команда: [Teamid] | Предоставляет доступ к любому члену конкретной команды. Примечание. Пользователь должен быть владельцем команды или принял приглашение команды для предоставления этого доступа. |
Команда: [Teamid] / [роль] | Предоставляет доступ к любому члену, который обладает определенной ролью в команде. Роли могут быть назначены на приглашение. |
Участник: [MemberiD] | Гранты доступа к конкретному члену команды, только пока они все еще являются членом команды. |
Роль: гость | Предоставляет доступ к любому гостевому пользователю, который не вошел в систему. |
Роль: член | Предоставляет доступ к любому зарегистрированному пользователю (пользователь с действительным сеансом). Зарегистрированным пользователям не имеет доступа к роли: гостевые ресурсы. |
Примечание. Документы не наследуют разрешения от его родительской коллекции.
Фильтры
listdocuments ()
Принимает массив строк фильтра, чтобы вы могли извлечь только необходимые документы в базе данных AppWrite. Фильтр состоит из следующего:
- атрибут фильтровать
- Оператор сравнения: один из
=,! =,>, <, <=,> =
- Цель стоимость
Вот несколько примеров, использующих наши Книги коллекция:
'title = Хоббит'
Директор! = Вуди Аллен
Опубликовано> = 2000 '
Положить все вместе
В качестве примера давайте создадим коллекцию книг в AppWrite. Хотя некоторые проекты требуют создания коллекций программно, другие легче создавать с помощью консоли AppWrite.
У книги есть Название , Автор и год это было Опубликовано . Давайте добавим тех, начиная с Название используя текст Тип правила:
Если вы видите, новые правила не Требуется по умолчанию. Давайте сделаем Название требуется:
Теперь мы можем сделать то же самое для Автор и Опубликовано , используя Числовый Тип правила для года публикации, поэтому у нас сейчас есть:
Разрешения, на примере
Теперь, когда наша коллекция книг имеет необходимые правила, мы можем создавать документы и ограничивать доступ по мере необходимости. Проверьте следующий код:
let sdk = new Appwrite(); sdk .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; let promise = sdk.database.createDocument( '609bdea2f0f99', // collectionID for Books {'title': 'The Great Gatsby', 'author': 'F. Scott Fitzgerald', 'published': 1925}, ['role:member'], ['team:5c1f88b87435e/owner', 'user:6095f2933a96f']);
В этом примере новая книга от Созданныйocument
можно прочитать любым зарегистрированным пользователем, но только владелец команда 5C1F88B87435E и пользователь 6095F2933A96F есть разрешения для записи (или обновления).
Вложенные документы
Есть еще один тип правила, который я не упомянул до сих пор: вложенное Документ
Если вам нужно хранить один документ внутри другого. Это лучше всего показано, поэтому давайте будем использовать наш Книги коллекция.
Скажите, что у нас также была коллекция для Авторы Чтобы сохранить наши данные организованы. Использование вложенного Документ
Правило, мы можем перекрестить ссылку Авторы Коллекция при создании новых книг. Наш документ для «Великого Гэтсби», который мы создали выше, выглядят:
let promise = database.createDocument( '609bdea2f0f99', // collectionID for Books { 'title': 'The Great Gatsby', 'published': 1925, 'author': { '$collection': '', // The actors collection unique ID '$permissions': {'read': ['role:member'], 'write': ['team:5c1f88b87435e/owner', 'user:6095f2933a96f']}, // Set document permissions 'name': 'F. Scott Fitzgerald' } ] }, ['*'], // Read permissions );
Кредиты
Мы надеемся, что вам понравилась эта запись. Вы можете следовать # 30daysofappwrite На социальных сетях, чтобы не отставать от всех наших постов. Полное время событий можно найти здесь
Не стесняйтесь добраться до нас на раздоре, если вы хотите узнать больше о AppWrite, Aliens или Unicorns 🦄. Оставайтесь настроиться на завтрашнюю статью! До тех пор 👋.
Оригинал: “https://dev.to/appwrite/30daysofappwrite-appwrite-database-22an”