---
title: 関連情報選択で選択したコンテンツの全情報をレスポンスに追加するにはどうしたら良いですか？
description: レスポンスされた関連情報のIDから対象のコンテンツの情報を取得して、エンドポイントのレスポンスに追加するカスタム処理を作成し、エンドポイントの後処理に設定することで対応ができます。
category: howto
---

import StructuredDataFaqs from '@site/src/components/StructuredDataFaqs';

<StructuredDataFaqs faqs={[
    { question: "関連情報選択で選択したコンテンツの全情報をレスポンスに追加するにはどうしたら良いですか？", answer: "レスポンスされた関連情報のIDから対象のコンテンツの情報を取得して、エンドポイントのレスポンスに追加するカスタム処理を作成し、エンドポイントの後処理に設定することで対応ができます。" }
]} />

レスポンスされた関連情報のIDから対象のコンテンツの情報を取得して、エンドポイントのレスポンスに追加するカスタム処理を作成し、エンドポイントの後処理に設定することで対応ができます。  

## カスタム処理の設定
[カスタム処理編集](/ja/docs/management/function/#カスタム処理編集)の画面から以下のコードを設定したカスタム処理を作成します。  

:::info
以下のコードはext_1の項目に関連情報選択を設定している前提として書いています。  
ご自身の設定に合わせて調整ください。
:::

### module_typeがtopicsの場合

```smarty
{*  エンドポイント設定パラメータ *}
{assign_array var='method_params'           values=''}
{assign       var='method_params.topics_id' value=$json.details.ext_1.module_id}
{api_method
    var='response'
    model='Topics'
    method='details'
    version='1'
    method_params=$method_params}

{append var='json.details.ext_1' value=$response.details index='details'}
{assign var='processed_json'     value=$json}
```
### module_typeがmemberの場合

```smarty
{*  エンドポイント設定パラメータ *}
{assign_array var='method_params'           values=''}
{assign       var='method_params.member_id' value=$json.details.ext_1.module_id}
{api_method
    var='response'
    model='Member'
    method='details'
    version='1'
    method_params=$method_params}

{append var='json.details.ext_1' value=$response.details index='details'}
{assign var='processed_json'     value=$json}
```

### module_typeがformの場合

```smarty
{*  エンドポイント設定パラメータ *}
{assign_array var='method_params'            values=''}
{assign       var='method_params.inquiry_id' value=$json.details.ext_1.module_id}
{api_method
    var='response'
    model='InquiryForm'
    method='details'
    version='1'
    method_params=$method_params}

{append var='json.details.ext_1' value=$response.details index='details'}
{assign var='processed_json'     value=$json}
```

## エンドポイントの後処理に設定
追加したカスタム処理を対象のエンドポイントの後処理に設定します。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/1fdb4a099f1ea4d84fe886f21e627dcd.png)

## 動作確認
エンドポイントのレスポンスをSwagger UIで確認すると、以下のように、`ext_1`の下に`details`という項目名で紐づけられた関連情報の詳細が追加されていることが分かります。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/d3aa0e0a1e88752b823e43a0ee1dedb2.png)

## listのエンドポイントの場合
Topics::listのエンドポイントの場合は、以下のコード例になります。  

```smarty
{assign_array var='empty_array' values=""}
{assign var='empty_object' value=$empty_array|@to_object}

{foreach from=$json.list key=key item=details}
	{assign var='topics_id' value=$details.ext_1.module_id}
	{assign var='module_type' value=$details.ext_1.module_type}
	{assign var='details.ext_1' value=$empty_object}
	{if $topics_id && $module_type == "topics"}
		{* エンドポイント設定パラメータ *}
		{assign_array var='method_params' values=''}
		{assign var='method_params.topics_id' value=$topics_id}
		{api_method
			var='response'
			model='Topics'
			method='details'
			version='1'
			method_params=$method_params}
		{append var='details' value=$response.details index='ext_1'}
	{/if}
	{assign_array_set var="json.list" key=$key value=$details from=$json.list}
{/foreach}


{assign var='processed_json' value=$json}
```


## 関連ドキュメント
- [後処理](/ja/docs/reference/post-processing/)
- [カスタム処理からKurocoのAPIを呼び出せますか？](/ja/docs/faq/how-to-request-kuroco-api-from-smarty-function/)