---
title: "リファレンスデータサービスAPI"
slug: "reference-data-service-api"
abstract: "参照データサービスAPIの概要と例。"
---
# リファレンスデータサービスAPI

Reference Data Service APIはReference Data Serviceデータベースに直接アクセスでき、HTTPクライアントは使用しません。

> !重要クライアントはReference Data Client APIを使用するべきです。Sitecoreの文脈ではReference Data Service APIのインスタンスを取得することはできません。

サービスAPIは、xDB内の呼び出し元によって利用されます。以下には以下が含まれます:

-   リファレンスデータサービス。
-   StandaloneおよびProcessingインスタンスで動作するインタラクション集約パイプライン。

参照データクライアントAPIはReferenceDataServiceクラスで表現され、IReferenceDataClientインターフェースを実装しているため、参照データクライアントAPIとまったく同じ方法で使用できます。

## Reference Data Service APIのインスタンスを非Sitecoreコンテキストで入手しましょう

以下の例は、Sitecore以外のコンテキストでReference Data Service APIのインスタンスを構築する方法を示しています。

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging;
using Sitecore.DependencyInjection;
using Sitecore.Framework.Conditions;
using Sitecore.Xdb.ReferenceData.Core.Converter;
using Sitecore.Xdb.ReferenceData.Service;
using Sitecore.Xdb.ReferenceData.Service.Cache;
using Sitecore.Xdb.ReferenceData.Service.Repository;
using Sitecore.Xdb.ReferenceData.SqlServer;
using Sitecore.Xdb.Sql.Common;
using System;

namespace Documentation
{
 public class RefDataClientsNonSitecore
 {
 public async void AsyncExample()
 {
 var retySettings = new RetryManagerSettings(5, TimeSpan.FromSeconds(3));
 var retryManager = new RetryManager(retySettings);
 var loggerFactory = new LoggerFactory();

 var refdataProviderLogger = new Logger<SqlServerReferenceDataProvider>(loggerFactory);

 // Expects xdb.referencedata to exist
 var refdataProvider = new SqlServerReferenceDataProvider("xdb.referencedata", refdataProviderLogger, retryManager);

 var refdataRepo = new ReferenceDataRepository(refdataProvider);
 var refdataCache = new NullDefinitionCache();

 var referenceDataServiceLogger = new Logger<ReferenceDataService>(loggerFactory);
 var refdataClient = new ReferenceDataService(refdataRepo, refdataCache, referenceDataServiceLogger, new DefinitionRecordJsonConverter());
 }
 }
}