---
articleId: 452cd7eb-0d9b-4872-b61e-3d610ea14c0c
slug: create-destination-custom-connector
title: 転送先としてカスタムコネクタを作成する
parentCategoryId: cae458a0-c255-491c-a961-51d76d7d2674
languageCode: ja
---
本ページでは、転送先としてカスタムコネクタを作成する手順について説明します。
接続情報や転送に関する設定については、以下のドキュメントを参照ください。
- [接続情報 - カスタムコネクタ](/docs/connection-configuration-custom-connector)
- [転送先 - カスタムコネクタ](/docs/data-destination-custom-connector)
## 入力項目
### 基本情報
| 項目名 | 必須 |説明|
| --- | --- | --- |
| 名前 | Yes | TROCCO内部で利用するカスタムコネクタの名前を入力します。 |
| メモ | No | TROCCO内部で利用するカスタムコネクタのメモを入力できます。 |
### コネクタ情報
| 項目名 | 必須 |説明|
| --- | --- | --- |
| ベースURL | Yes | カスタムコネクタで取得対象とするREST APIのベースURLを入力します。
ベースURLとは、APIのすべてのエンドポイントにアクセスする際の基本となるURLです。
例:`https://api.example.com/api/v1`|
### 認証情報
| 項目名 | 必須 |説明|
| --- | --- | --- |
| 認証種別 | Yes | 認証種別を選択します。**APIキー**または**OAuth2**による認証に対応しています。
選択した認証種別によって、認証情報で入力する項目が変わります。|
#### 認証種別でOAuth2を選択した場合の追加項目
| 項目名 | 必須 | デフォルト値 | 説明 |
| --- | --- | --- | --- |
| グラントタイプ | Yes | `認可コード` | OAuthで認証を付与する方式(グラントタイプ)を選択します。
取得対象のAPIで利用できるグラントタイプを選択してください。
|
| 認可URL | Yes | - | グラントタイプに`認可コード`を選択した場合のみ、入力が必要な項目です。
OAuthの認可サーバーへの遷移先となる認可URLを入力します。利用するOAuthサービスから取得してください。 |
| アクセストークンURL | Yes | - | OAuthにアクセストークンをリクエストする先となるアクセストークンURLを入力します。利用するOAuthサービスから取得してください。 |
#### 各認証種別で共通の項目
| 項目名 | 必須 | デフォルト値 | 説明 |
| --- | --- | --- | --- |
| 認証ヘッダ名 | Yes | `Authorization` | APIキーを送信するヘッダーの名称を入力します。|
| 認証スキーム | No | `Bearer` | 認証情報のスキームを入力します。 |
### エンドポイント
カスタムコネクタで取得対象とするAPIのエンドポイントごとに設定を追加します。
| 項目名 | 必須 | デフォルト値 | 説明 |
| --- | --- | --- | --- |
| 名前 | Yes | - | エンドポイントの名前を入力します。|
| 操作種別 | Yes | 作成API | どの操作種別としてエンドポイントを定義するか選択します。- **作成API**:転送データを新しいレコードとして登録する際に使用するエンドポイントとして設定します。
- **更新API**:既存レコードを更新する際に使用するエンドポイントとして設定します。
|
| リクエストタイプ | Yes | 単一リクエスト | 実行するAPIのリクエストタイプを選択します。- **単一リクエスト**:1レコードごとに1回のAPIリクエストを送信します。使用するAPIが単一リクエストの仕様である場合に選択します。
- **一括リクエスト**:複数レコードをまとめて1回のAPIリクエストで送信します。使用するAPIが複数レコードの一括追加に対応している場合などに選択します。
|
| バッチサイズ | Yes | - | リクエストタイプで**一括リクエスト**を選択した場合のみ指定できます。指定した件数単位でレコードが転送されます。|
| パス | Yes | - | ベースURLで指定したURL部分を除いた、APIエンドポイントのパスを入力します。
詳しくは、[パスの指定について](/docs/create-destination-custom-connector#パスの指定について)を参照ください。|
| パスパラメータ | No | - | パスにパスパラメータを用いる際に入力します。 |
| HTTPメソッド | Yes | POST | HTTPメソッドを選択します。
`POST`・`PUT`・`PATCH`をサポートしています。|
| リクエストテンプレート | Yes | - | 転送先サービスへのAPIリクエストに使用するペイロードのフォーマットを定義します。詳しくは、[リクエストテンプレートの定義について](/docs/create-destination-custom-connector#リクエストテンプレートの定義について)を参照ください。 |
| HTTPヘッダ | No | - | リクエストに必要なHTTPヘッダを設定します。- デフォルト値:パラメータのデフォルト値を入力します。
- 編集可能:チェックを入れた場合、転送設定時にパラメータの値を入力できるようになります。
- 必須:チェックを入れた場合、転送設定時にパラメータの値の入力が必須になります。
|
:::(Info) (リクエストタイプの選択について)
転送先サービスが複数レコードの一括追加に対応したAPIを提供している場合、作成APIは一括リクエストの指定を推奨します。
単一リクエストでも転送は可能ですが、転送先サービスが規定するRate Limitによるボトルネックが生じる可能性が高まります。
:::
#### 詳細設定
| 項目名 | 必須 | デフォルト値 | 説明 |
| --- | --- | --- | --- |
| 転送データ取得時に正常系と判定するステータスコード | Yes | `200,201,204` | データ転送の成功とみなすレスポンスのステータスコードを指定します。
カンマ区切りで複数指定できます。 |
| 失敗時にリトライしないステータスコード | Yes | `400,401,403,404` | データ転送の失敗として再転送を実行しないレスポンスのステータスコードを指定します。
権限が足りない場合など、カスタムコネクタの準備・設定に起因するエラーに対するステータスコードの指定を推奨します。
カンマ区切りで複数指定できます。 |
#### 接続確認
設定したエンドポイントの接続を確認できます。
:::(Warning) (接続確認によるデータ転送について)
接続確認では実際にAPIリクエストを送信するため、転送先のサービスにデータが登録される可能性があります。
接続確認で本番環境へのデータ転送を避けたい場合は、転送先サービス側の検証環境に接続できる接続情報の利用を推奨します。
:::
:::(Info) ()
接続確認には事前に接続情報を設定する必要があるため、一度カスタムコネクタを作成して接続情報を設定したのち、実行してください。
:::
| 項目名 | 必須 | デフォルト値 | 説明 |
| --- | --- | --- | --- |
| 接続確認に利用する接続情報 | Yes | - | 接続確認に利用する接続情報を選択します。 |
| ヘッダ | No | - | エンドポイント設定で指定したHTTPヘッダの値を入力できます。 |
| 接続確認に利用するサンプルデータ | No | - | 接続確認に利用するサンプルデータを指定します。 |
### パスの指定について
[Liquidテンプレート構文](https://shopify.dev/docs/api/liquid)を使用し、データ転送時のリクエスト先URLに変数を埋め込むことができます。
事前にIDを指定した上でレコードを追加したり、既存レコードのカラムの値をキーとしてレコードを更新したい場合に利用できます。
転送設定STEP2で設定するカラムを`row.カラム名` の形で変数として利用できます。
パスの展開結果は転送設定STEP2で確認できます。

:::(Warning) (リクエストURLに変数を利用できないエンドポイント)
リクエストタイプが**一括リクエスト**のエンドポイントについては、Liquidテンプレート構文によるリクエストURL内の変数を利用できません。
固定URLのみ指定できます。
:::
### リクエストテンプレートの定義について
[Liquidテンプレート構文](https://shopify.dev/docs/api/liquid)を使用し、リクエスト時のペイロードの内容を定義できます。
#### 単一リクエストの場合
転送設定STEP2で設定するカラムを`row.カラム名` の形で参照します。
```json
{
"field1": "{{ row.column1 }}",
"field2": "{{ row.column2 }}"
}
```
#### 一括リクエストの場合
レコードのデータは `rows` に配列で格納されます。for文を利用して配列を展開し、各レコードを定義します。
```json
{
"records": [
{% for row in rows %}
{
"field1": "{{ row.column1 }}",
"field2": "{{ row.column2 }}",
"field3": "{{ row.column3 }}"
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
```
テンプレートプレビューを利用すると、定義したテンプレートに値を指定し、ペイロードの内容を確認できます。

また、転送設定STEP2では、実際の転送元データによるプレビューも確認できます。

:::(Warning) (テンプレートの形式について)
Liquidテンプレートのすべての形式・記法には対応していません。
動作を保証しているフォーマットはJSONのみとなります。
:::