Loopback 4 Что такое репозиторий? - PullRequest
0 голосов
/ 26 января 2019

Мне трудно понять концепцию репозиториев в Loopback 4, в документации сказано:

Репозиторий представляет собой специализированный интерфейс службы, который обеспечивает доступ к данным со строгой типизацией (например, CRUD)операции доменной модели с базовой базой данных или службой.

, но это описание не помогает мне полностью понять идею, стоящую за ними. Может кто-то объяснить простыми словами, что это такое, и привести несколько примеровподобных понятий в других рамках?

1 Ответ

0 голосов
/ 28 января 2019

При использовании платформы ORM (Object Relational Mapper) мы представляем данные в виде классов моделей:

@model()
class Person {
  @property()
  name: string;
}

Чтобы сохранить данные и запросить данные, нам нужно добавить поведение в наши модели.Репозитории - это классы, обеспечивающие такое поведение.

Например, интерфейс EntityCrudRepository LoopBack описывает методы для создания, обновления, удаления и запроса данных в таблицах SQL / коллекциях документов NoSQL.

// simplified version
interface EntityCrudRepository<T, ID> {
  create(data: DataObject<T>): Promise<T>;
  find(filter?: Filter<T>): Promise<T[]>;
  updateById(id: ID, data: DataObject<T>): Promise<void>;
  deleteById(id: ID): Promise<void>;
  // etc.
}

KeyValueRepository описывает API для работы с хранилищем значений ключей, например Redis:

interface KeyValueRepository<T> {
  get(key: string): Promise<T>;
  set(key: string, value: DataObject<T>): Promise<void>;
  delete(key: string): Promise<void>;
}

См. Также Шаблоны архитектуры корпоративных приложений :

Концептуально, aРепозиторий инкапсулирует набор объектов, сохраненных в хранилище данных, и операции, выполняемые над ними, обеспечивая более объектно-ориентированное представление уровня персистентности.Хранилище также поддерживает цель достижения чистого разделения и односторонней зависимости между доменом и слоями отображения данных.

...