Репозитории
- Preferred location (for context):
src/app/contexts/{ContextName}/infrastructure/http/repositories
С точки зрения реализации репозитории не имеют ограничений. Ниже приведён пример интеграции того, как пакет предполагает реализацию репозитория и интеграцию в него источника данных. Примеры источника данных и ответа для источника данных приведены в предыдущих разделах.
typescript
// В данном примере используется источник данных из примера в предыдущем разделе
// Импортируется из папки /core, о которой можно почитать в разделе об архитектуре
// Данный алиас и сам источник можно сгенерировать с помощью @azure-net/cli (о нём в разделе CLI)
import { MyCustomDatasource } from '$core';
export class MyRepository {
constructor(private datasource: MyCustomDatasource) {}
async collection(query?: MyQueryType) {
return this.datasource.createRequest<IUser[]>(({ http, query }) => http.get(`/users${query.build(query)}`))
// в then мы получаем экземпляр нашего ответа, созданного в предыдущих разделах
.then((res) => res.paginate().get());
}
async create(data: MyCreateRequest) {
return this.datasource.createRequest<IUser>(({ http }) => http.post('/users', { json: data }));
}
}