# 샘플 레이아웃 상세 조회

## Request

## 레이아웃 등록/수정을 위해 참조용으로 제공되는 샘플 레이아웃 상세 정보를 조회합니다.<br>

> 레이아웃 등록/수정을 위해 참조용으로 제공되는 샘플 레이아웃 상세 정보를 조회합니다.  \
> \
> &#x20; \+ \*\*계정 권한: 대행사\*\*<br>

```json
{"openapi":"3.0.0","info":{"title":"RCS Biz Center API 규격","version":"1.1.12"},"servers":[{"description":"RCS Biz Center API for Staging","url":"https://api-qa.rcsbizcenter.com/api/1.1"},{"description":"RCS Biz Center API for Production","url":"https://api.rcsbizcenter.com/api/1.1"}],"security":[{"jwtAuth":[]}],"components":{"securitySchemes":{"jwtAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"인증방식은 JWT인증을 사용합니다. 토큰의 갱신은 없으며 토큰 만료 시 항상 재발급 받아야 합니다.\n"}},"parameters":{"SampleLayoutId":{"name":"sampleLayoutId","in":"path","schema":{"type":"string"},"description":"샘플레이아웃 ID 입니다.","required":true}}},"paths":{"/baselayout/sample/{sampleLayoutId}":{"get":{"summary":"레이아웃 등록/수정을 위해 참조용으로 제공되는 샘플 레이아웃 상세 정보를 조회합니다.\n","description":"레이아웃 등록/수정을 위해 참조용으로 제공되는 샘플 레이아웃 상세 정보를 조회합니다.  \n\n  + **계정 권한: 대행사**\n","parameters":[{"$ref":"#/components/parameters/SampleLayoutId"}],"responses":{"200":{"description":"페이지 내 Response 섹션 참조"}}}}}}
```

## Response

<table data-full-width="true"><thead><tr><th width="147">필드명</th><th width="141">타입</th><th width="68" align="center">길이</th><th width="108" align="center">필수여부</th><th width="119">기본값</th><th>설명</th></tr></thead><tbody><tr><td><a href="#result-array-less-than-object-greater-than"><mark style="color:blue;"><strong><code>result</code></strong></mark></a></td><td>array&#x3C;object></td><td align="center"></td><td align="center">O</td><td></td><td>샘플 레이아웃 상세 정보 입니다.</td></tr><tr><td><strong><code>code</code></strong></td><td>string</td><td align="center">5</td><td align="center">O</td><td>20000000</td><td></td></tr><tr><td><strong><code>status</code></strong></td><td>integer</td><td align="center">3</td><td align="center">O</td><td>200</td><td></td></tr><tr><td><strong><code>desc</code></strong></td><td>string</td><td align="center"></td><td align="center">O</td><td></td><td></td></tr></tbody></table>

### <mark style="color:blue;">result</mark> - array\<object>

<table data-full-width="true"><thead><tr><th width="205">필드명</th><th width="137">타입</th><th width="70" align="center">길이</th><th width="96" align="center">필수여부</th><th width="139">기본값</th><th>설명</th></tr></thead><tbody><tr><td><strong><code>sampleLayoutId</code></strong></td><td>string</td><td align="center">40</td><td align="center"></td><td></td><td>샘플 레이아웃 상세 정보 입니다.</td></tr><tr><td><strong><code>sampleLayoutName</code></strong></td><td>string</td><td align="center">40</td><td align="center"></td><td></td><td>샘플 레이아웃 이름 입니다.</td></tr><tr><td><strong><code>productCode</code></strong></td><td>string</td><td align="center">20</td><td align="center"></td><td></td><td>샘플 레이아웃의 메시지 상품 코드 입니다.</td></tr><tr><td><strong><code>status</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td></td><td><p>샘플 레이아웃의 상태를 표시합니다.</p><ul><li>ready : 사용</li><li>pause : 사용중지</li></ul></td></tr><tr><td><strong><code>registerId</code></strong></td><td>string</td><td align="center">20</td><td align="center"></td><td></td><td>등록자 ID 입니다.</td></tr><tr><td><strong><code>registerDate</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td></td><td>등록일시 입니다.</td></tr><tr><td><strong><code>updateDate</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td></td><td>수정일시 입니다.</td></tr><tr><td><strong><code>approvalResult</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td></td><td><p>레이아웃 등록 상태입니다. 레이아웃은 운영자 검수 없이 자동 등록됩니다.</p><ul><li>등록완료 : 이통3사에 정상 등록된 상태입니다.</li><li>저장 : RBC 웹에서 저장만 했을 경우 상태이며 별도 등록요청을 해야 합니다.</li><li>처리중 : 이통 3사 등록 중 에러로 인해 최종 완료가 되지 않은 상태로 수정이나 삭제가 불가능한 상태입니다.</li></ul></td></tr><tr><td><strong><code>spec</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td>openrichcard</td><td>레이아웃 구조가 리치카드인지 오픈리치카드인지 구분합니다. 샘플 레이아웃은 오픈리치카드로 구성되어 있습니다.</td></tr><tr><td><strong><code>cardType</code></strong></td><td>string</td><td align="center">64</td><td align="center"></td><td></td><td><p>카드 종류를 구분합니다.<br>레이아웃에 표시되는 카드 타입은 다음 두 가지로 제한됩니다.</p><ul><li>format : 이통사 제공 공통포맷의 카드 타입입니다.</li><li>formatBr : 사용자가 등록한 레이아웃의 카드 타입입니다.</li></ul></td></tr><tr><td><strong><code>buttonColor</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td></td><td>버튼에 지정된 컬러 값을 표시합니다. 지정된 경우 컬러 Hex 값(예,'#FFFFFF')이 표시되며, 미지정 시 빈값 입니다.</td></tr><tr><td><a href="#headercomposition-bodycomposition-footercomposition-array-less-than-object-greater-than"><mark style="color:blue;"><strong><code>headerComposition</code></strong></mark></a></td><td>array&#x3C;object></td><td align="center"></td><td align="center"></td><td></td><td>카드 내의 최상위 영역으로 1개의 컴포넌트를 지정할 수 있습니다. 컴포넌트 중 headerYn = 'Y' 인 컴포넌트만 등록이 가능합니다.</td></tr><tr><td><a href="#headercomposition-bodycomposition-footercomposition-array-less-than-object-greater-than"><mark style="color:blue;"><strong><code>bodyComposition</code></strong></mark></a></td><td>array&#x3C;object></td><td align="center"></td><td align="center"></td><td></td><td><p>카드 내의 중간 영역으로 메시지 상품에서 지정한 개수의 컴포넌트를 지정할 수 있습니다.<br>컴포넌트 중 bodyYn = 'Y' 인 컴포넌트만 등록이 가능합니다.<br>예를 들어 LMS는 최대 6개의 컴포넌트를 지정할 수 있으며, 최대 개수 범위 내에서 각 영역별 배분할 수 있습니다.</p><ul><li>Header 1개 지정 시 body 최대 5개</li><li>body만 지정 시 최대 6개</li></ul></td></tr><tr><td><a href="#headercomposition-bodycomposition-footercomposition-array-less-than-object-greater-than"><mark style="color:blue;"><strong><code>footerComposition</code></strong></mark></a></td><td>array&#x3C;object></td><td align="center"></td><td align="center"></td><td></td><td>카드 내의 최상위 영역으로 1개의 컴포넌트를 지정할 수 있습니다. 컴포넌트 중 footerYn = 'Y' 인 컴포넌트만 등록이 가능합니다. 현재는 footer에 사용자가 직접 지정하는 컴포넌트는 없습니다.</td></tr><tr><td><a href="#headercomposition-bodycomposition-footercomposition-array-less-than-object-greater-than"><mark style="color:blue;"><strong><code>formattedString</code></strong></mark></a></td><td>object</td><td align="center"></td><td align="center"></td><td></td><td>샘플 레이아웃을 구성한 openrichcard 메시지 구조 정보 입니다. 레이아웃 등록/수정 시에는 컴포넌트를 활용하므로 formattedString 은 참조 데이터로 제공됩니다.</td></tr></tbody></table>

{% hint style="info" %}
GSMA RCC.07-v11.0 참조\
<https://www.gsma.com/solutions-and-impact/technologies/networks/wp-content/uploads/2019/10/RCC.07-v11.0.pdf>
{% endhint %}

{% hint style="info" %}
TTAK.KO-06.0410/R7 참조

<https://committee.tta.or.kr/data/standard_view.jsp?secondDepthCode=PG1105&firstDepthCode=TC011&pk_num=TTAK.KO-06.0410/R7&commit_code=PG1105>
{% endhint %}

### <mark style="color:blue;">headerComposition, bodyComposition, footerComposition</mark> - array\<object>

<table data-full-width="true"><thead><tr><th width="147">필드명</th><th width="141">타입</th><th width="68" align="center">길이</th><th width="108" align="center">필수여부</th><th width="119">기본값</th><th>설명</th></tr></thead><tbody><tr><td><strong><code>index</code></strong></td><td>integer</td><td align="center"></td><td align="center"></td><td></td><td>레이아웃 내 컴포넌트의 순번을 표시합니다. 등록 시에는 index를 지정하지 않으며, 배열 내 순서를 기준으로 처리됩니다.</td></tr><tr><td><strong><code>componentId</code></strong></td><td>string</td><td align="center">40</td><td align="center">O</td><td></td><td>지정할 컴포넌트 ID 입니다.</td></tr><tr><td><a href="#options-object-0"><mark style="color:blue;"><strong><code>options</code></strong></mark></a></td><td>object</td><td align="center"></td><td align="center"></td><td></td><td>레이아웃 사용 시 컴포넌트에 적용될 수 있는 옵션입니다. 옵션 지정이 가능한 경우 표기됩니다.</td></tr></tbody></table>

### <mark style="color:blue;">**options**</mark> - object(0)

<table data-full-width="true"><thead><tr><th width="170">필드명</th><th width="141">타입</th><th width="74" align="center">길이</th><th width="108" align="center">필수여부</th><th width="90">기본값</th><th>설명</th></tr></thead><tbody><tr><td><strong><code>leftAlign</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td>left</td><td><p>좌측 컬럼(열) 전체의 글자 정렬 위치를 설정합니다.</p><ul><li>left : 좌측 정렬</li><li>right : 우측 정렬</li><li>center : 중앙 정렬</li></ul></td></tr><tr><td><strong><code>rightAlign</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td>right</td><td><p>우측 컬럼(열) 전체의 글자 정렬 위치를 설정합니다.</p><ul><li>left : 좌측 정렬</li><li>right : 우측 정렬</li><li>center : 중앙 정렬</li></ul></td></tr><tr><td><strong><code>leftTextStyle</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td>normal</td><td><p>좌측 컬럼(열)에 입력되는 글자 스타일을 지정합니다.</p><ul><li>normal : 기본 스타일</li><li>bold : bold 스타일 적용</li></ul></td></tr><tr><td><strong><code>rightTextStyle</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td>normal</td><td><p>우측 컬럼(열)에 입력되는 글자 스타일을 지정합니다.</p><ul><li>normal : 기본 스타일</li><li>bold : bold 스타일 적용</li></ul></td></tr><tr><td><strong><code>maxCount</code></strong></td><td>integer</td><td align="center"></td><td align="center"></td><td>5</td><td><p>테이블의 행 개수를 지정합니다. 정의된 숫자 이외에는 지정할 수 없습니다.</p><ul><li>5 : 5행</li><li>10 : 10행</li></ul></td></tr></tbody></table>

{% hint style="info" %}
Table / StyleTable등 테이블 컴포넌트의 옵션 정보 객체 입니다.
{% endhint %}

### <mark style="color:blue;">options</mark> - object(1)

<table data-full-width="true"><thead><tr><th width="170">필드명</th><th width="141">타입</th><th width="68" align="center">길이</th><th width="108" align="center">필수여부</th><th width="117">기본값</th><th>설명</th></tr></thead><tbody><tr><td><strong><code>color</code></strong></td><td>string</td><td align="center"></td><td align="center"></td><td></td><td>버튼의 색상 설정 옵션입니다. 버튼의 색상은 브랜드 정보에서 지정한 templateColor 컬러 Hex 값과 동일해야 합니다. 빈값 지정 시 기본 버튼 컬러로 적용되며, 지정된 컬러 Hex 값이 templateColor의 값과 다르면 templateColor로 강제 설정됩니다.</td></tr></tbody></table>

{% hint style="info" %}
VButton / HButton 등 버튼 컴포넌트의 옵션 정보 객체 입니다.
{% endhint %}

### <mark style="color:blue;">options</mark> - object(2)

<table data-full-width="true"><thead><tr><th width="170">필드명</th><th width="141">타입</th><th width="68" align="center">길이</th><th width="108" align="center">필수여부</th><th width="117">기본값</th><th>설명</th></tr></thead><tbody><tr><td><strong><code>ctlrViewAll</code></strong></td><td>boolean</td><td align="center"></td><td align="center"></td><td>true</td><td><p></p><p>컴포넌트 단위의 viewAll(모두보기) 활성화 여부를  지정합니다.</p><ul><li>true: 컴포넌트 viewAll(모두보기) 활성화</li><li>false: 컴포넌트 viewAll(모두보기) 비활성화</li></ul></td></tr><tr><td>viewAll</td><td>integer</td><td align="center"></td><td align="center"></td><td>150</td><td>viewAll(모두보기) 접힘 글자수 기준값을 지정합니다.<br>유효값: 150(default), 300<br>유효값 이외 수치가 입력되는 경우 defualt로 처리됩니다.</td></tr></tbody></table>

{% hint style="info" %}
viewAll(모두보기) 설정을 포함하는 컴포넌트의 옵션 정보 객체 입니다.
{% endhint %}

### ❖ response body sample

{% tabs %}
{% tab title="200" %}

```
{
    "code": "20000000",
    "desc": null,
    "result": [
        {
            "sampleLayoutId": "OL00000001",
            "sampleLayoutName": "기본형",
            "productCode": "lms",
            "spec": "openrichcard",
            "buttonColor": null,
            "formattedString": {
                "RCSMessage": {
                    "openrichcardMessage": {
                        "scaleAllowed": true,
                        "layout": {
                            "orientation": "vertical",
                            "widget": "LinearLayout",
                            "children": [
                                {
                                    "orientation": "vertical",
                                    "widget": "LinearLayout",
                                    "visibility": "{{mTitleVsblty}}",
                                    "children": [
                                        {
                                            "orientation": "horizontal",
                                            "widget": "LinearLayout",
                                            "children": [
                                                {
                                                    "corner_radius": "4dp",
                                                    "marginRight": "4dp",
                                                    "widget": "ImageView",
                                                    "visibility": "{{mTitleMediaVsblty}}",
                                                    "mediaUrl": "{{mTitleMedia}}",
                                                    "scaleType": "fitXY",
                                                    "width": "24dp",
                                                    "height": "24dp"
                                                },
                                                {
                                                    "widget": "TextView",
                                                    "textSize": "19dp",
                                                    "textAlignment": "textStart",
                                                    "width": "match",
                                                    "textStyle": "bold",
                                                    "text": "{{mTitle}}",
                                                    "textColor": "#1e1e1e",
                                                    "height": "content"
                                                }
                                            ],
                                            "gravity": "bottom",
                                            "width": "match",
                                            "height": "content"
                                        },
                                        {
                                            "widget": "View",
                                            "background": "#1e1e1e",
                                            "width": "match",
                                            "marginTop": "6dp",
                                            "height": "2dp"
                                        }
                                    ],
                                    "paddingRight": "14dp",
                                    "width": "match",
                                    "paddingLeft": "14dp",
                                    "marginTop": "14dp",
                                    "height": "content"
                                },
                                {
                                    "orientation": "vertical",
                                    "widget": "LinearLayout",
                                    "children": [
                                        {
                                            "padding": "4dp",
                                            "orientation": "vertical",
                                            "widget": "LinearLayout",
                                            "visibility": "{{descVsblty}}",
                                            "children": [
                                                {
                                                    "widget": "TextView",
                                                    "textSize": "17dp",
                                                    "visibility": "{{descTitleVsblty}}",
                                                    "width": "match",
                                                    "marginBottom": "6dp",
                                                    "textStyle": "bold",
                                                    "text": "{{title}}",
                                                    "textColor": "#1e1e1e",
                                                    "height": "content"
                                                },
                                                {
                                                    "widget": "TextView",
                                                    "textSize": "15dp",
                                                    "width": "match",
                                                    "textStyle": "normal",
                                                    "text": "{{description}}",
                                                    "textColor": "#1e1e1e",
                                                    "viewAll": "150",
                                                    "height": "content"
                                                }
                                            ],
                                            "width": "match",
                                            "marginTop": "6dp",
                                            "height": "content"
                                        },
                                        {
                                            "padding": "4dp",
                                            "orientation": "vertical",
                                            "widget": "LinearLayout",
                                            "children": [
                                                {
                                                    "orientation": "vertical",
                                                    "widget": "LinearLayout",
                                                    "children": [
                                                        {
                                                            "corner_radius": "8dp",
                                                            "widget": "Button",
                                                            "textSize": "15dp",
                                                            "visibility": "{{btnVsblty1}}",
                                                            "textColor": "#1e1e1e",
                                                            "click": {
                                                                "action": {
                                                                    "displayText": "dummy",
                                                                    "urlAction": {
                                                                        "openUrl": {
                                                                            "url": ""
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "background": "#E4E4E4",
                                                            "textAlignment": "center",
                                                            "width": "match",
                                                            "text": "{{btnName1}}",
                                                            "textStyle": "normal",
                                                            "marginTop": "8dp",
                                                            "height": "36dp"
                                                        },
                                                        {
                                                            "corner_radius": "8dp",
                                                            "widget": "Button",
                                                            "textSize": "15dp",
                                                            "visibility": "{{btnVsblty2}}",
                                                            "textColor": "#1e1e1e",
                                                            "click": {
                                                                "action": {
                                                                    "displayText": "dummy",
                                                                    "urlAction": {
                                                                        "openUrl": {
                                                                            "url": ""
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "background": "#E4E4E4",
                                                            "textAlignment": "center",
                                                            "width": "match",
                                                            "text": "{{btnName2}}",
                                                            "textStyle": "normal",
                                                            "marginTop": "8dp",
                                                            "height": "36dp"
                                                        }
                                                    ],
                                                    "width": "match",
                                                    "height": "content"
                                                }
                                            ],
                                            "width": "match",
                                            "height": "content"
                                        }
                                    ],
                                    "paddingRight": "10dp",
                                    "width": "match",
                                    "paddingLeft": "10dp",
                                    "height": "content"
                                },
                                {
                                    "orientation": "vertical",
                                    "widget": "LinearLayout",
                                    "width": "match",
                                    "height": "10dp"
                                }
                            ],
                            "background": "#F2F2F2",
                            "width": "match",
                            "height": "content"
                        },
                        "version": "1.0.0",
                        "zoomAllowed": true,
                        "card": "open_rich_card"
                    },
                    "trafficType": "advertisement"
                }
            },
            "registerId": "rd135",
            "registerDate": "2023-10-19 22:41:12",
            "updateDate": "2024-06-21 14:47:25",
            "status": "ready",
            "approvalResult": "승인",
            "cardType": "format",
            "headerComposition": [
                {
                    "componentId": "CP-MainTitle",
                    "index": 1
                }
            ],
            "bodyComposition": [
                {
                    "componentId": "CP-Description",
                    "index": 2
                },
                {
                    "componentId": "CP-VButton",
                    "index": 3
                }
            ],
            "footerComposition": []
        }
    ],
    "status": 200
}
```

{% endtab %}

{% tab title="401" %}

```
{
    "error": {
        "code": "61003",
        "message": "Invalid token"
    },
    "status": 401
}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
error code는 [RCS Biz Center - Response body error code](https://apidocs.rcsbizcenter.com/error_code#rcs-biz-center-response-body-error-code) 참조
{% endhint %}
