---
schema_version: "1"
id: 9c8003dd984ed6ed854239a8ffcb6a823fe19f5957a2a64019150f5352ccc175
title: パラメーターの挿入
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/pdk/1.3/policies-pdk-configure-features-inject-parameters.md
canonical_url: https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-inject-parameters
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 6296839be9f0e724a0e336a0b71f91c03181e9805aeb866b2d87f163eba7437e
description: MuleSoft Documentation Site
release: "1.3"
latest: false
---
# パラメーターの挿入

Flex Gateway ポリシー開発キット (PDK) は、​`#[entrypoint]`​ 設定関数に挿入できる以下のパラメーターを提供します。

- `Configuration`​: ポリシーの設定パラメーターを提供します。設定パラメーターの定義方法については、[ポリシースキーマ定義の作成](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-create-schema-definition)を参照してください。
- `Metadata`​: ポリシー、Flex Gateway インスタンス、API インスタンス、および Anypoint 組織に関するメタデータを提供します。提供されるメタデータの詳細については、[ポリシーのメタデータへのアクセス](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-metadata)を参照してください。
- `HttpClient`​: ポリシーで HTTP コールを有効にします。ポリシーから HTTP コールを実行する方法の詳細については、[HTTP コールの実行](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-http-request)を参照してください。
- `CacheBuilder`​: ポリシーのキャッシュ機能を提供します。キャッシュの詳細については、[ワーカー間でのデータ共有とキャッシュの設定](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-caching)を参照してください。
- `StreamProperties`​: 同じ要求を処理する他のポリシーとプロパティを共有するための構造体を提供します。ポリシー間の情報共有の詳細については、[ポリシー間のデータ共有](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-streamproperties)を参照してください。

また、​`HttpClient`​ および ​`StreamProperties`​ パラメーターをラップされた関数の ​`on_request`​ または ​`on_response`​ に直接挿入することもできます。たとえば、​`on_request`​ 関数の内部で HTTP コールを実行する必要がある場合は、​`HTTPClient`​ をその関数に直接挿入します。

ベストプラクティスとして、パラメーターは必ず使用する場所にのみ挿入するようにしてください。ただし、ポリシーの適用時に一度だけ実行する初期化ステップがパラメーターに必要な場合は、ラップされた関数のパフォーマンスを向上させるために、パラメーターを ​`#[entrypoint]`​ に挿入して設定ステップを完了させるのが最善です。

## [](#ラップされた関数の-on_request-と-on_response-へのパラメーターの挿入)ラップされた関数の on\_request と on\_response へのパラメーターの挿入

ラップされた関数は以下のパラメーターを受け入れます。

- `HttpClient`​: ポリシーで HTTP コールを有効にします。ポリシーから HTTP コールを実行する方法の詳細については、[HTTP コールの実行](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-http-request)を参照してください。
- `StreamProperties`​: 同じ要求を処理する他のポリシーとプロパティを共有するための構造体を提供します。ポリシー間の情報共有の詳細については、[ポリシー間のデータ共有](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-streamproperties)を参照してください。
- `RequestState`​: 受信したリクエストヘッダーとリクエストボディを操作するための、要求検索条件のさまざまなフェーズへのアクセスを提供します。 `RequestState`​ は ​`on_request`​ 関数でのみ使用できます。​`RequestState`​ のヘッダーとボディの読み取りと書き込みについては、[リクエストヘッダーとリクエストボディの読み取りと書き込み](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-headers)を参照してください。
- `ResponseState`​: アップストリームのレスポンスヘッダーとレスポンスボディを操作するための、要求検索条件のさまざまなフェーズへのアクセスを提供します。 `ResponseState`​ は ​`on_response`​ 関数でのみ使用できます。​`ResponseState`​ のヘッダーとボディの読み取りと書き込みについては、[リクエストヘッダーとリクエストボディの読み取りと書き込み](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-headers)を参照してください。
- `RequestData`​: `on_request`​ 関数と ​`on_response`​ 関数の間でデータを共有します。 `RequestData`​ は ​`on_response`​ 関数でのみ使用できます。​`RequestData`​ の詳細については、[要求と応答でのデータの共有](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-share-data)を参照してください。
- `Authentication`​: 認証データの読み取りまたは他のポリシーとの共有のためのアクセスを提供します。​`Authentication`​ の詳細については、[要求認証情報へのアクセス](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features-authentication)を参照してください。

ラップされた関数がこれらのパラメーターを受け取るだけであれば、ラッパーにラムダは必要ありません。たとえば、関数のシグネチャーが次のように定義されているとします。

```Rust
async fn request_filter(state: RequestState) -> RequestData<String>;
async fn response_filter(state: ResponseState, path: RequestData<String>);
```

次の例では、関数定義のラムダを定義しています。

```Rust
let filter = on_request(|request_state| request_filter(request_state))
    .on_response(|response_state, request_data| response_filter(response_state, request_data));
```

ラムダを定義する代わりに、次の関数定義を使うことができます。

```Rust
let filter = on_request(request_filter)
        .on_response(response_filter);
```

ラップされた関数が、他のパラメーター (​`#[entrypoint]`​ 関数で定義された設定パラメーターなど) を必要とする場合は、そのパラメーターをラップされた関数に挿入します。パラメーターを渡すには、ラムダを定義して変数参照を送信します。例:

```Rust
async fn request_filter(state: RequestState, conf: &Config, tuple: &(u32, u32)) {
...
}

#[entrypoint]
async fn configure(launcher: Launcher, Configuration(bytes): Configuration) -> Result<()> {
    let config = serde_json::from_slice(&bytes)?;
    let tuple: (u32, u32) = (10, 10);

    let filter = on_request(|request_state| request_filter(request_state, &config, &tuple));

    launcher
        .launch(filter)
        .await?;

    Ok(())
}
```

## [](#関連情報)関連情報

- [Rust でのカスタムポリシー機能の実装](https://docs.mulesoft.com/jp/pdk/1.3/policies-pdk-configure-features)