속성 및 additionalProperties를 사용하여 데이터 구조화
Open API 사양에서 properties 키워드는 속성 이름 및 데이터 유형을 포함하여 개체에 대한 하나 이상의 속성을 정의합니다. additionalProperties 키워드를 사용하면 정의되지 않은 스키마로 추가 속성을 유연하게 추가할 수 있습니다. 명명된 등록 정보는 일치하는 데이터 유형의 Apex 등록 정보로 액세스할 수 있습니다. 사양의 additionalProperties는 Apex Map 속성으로 액세스할 수 있습니다.
필수 Edition
| 지원 제품: Lightning Experience |
| 지원 제품: Enterprise, Performance, Unlimited 및 Developer Edition |
-
OpenAPI 스키마 지시문에 따른
properties및additionalProperties는 공식 객체 속성 및 사전 속성으로 표시됩니다. property 또는 additionalProperties 유형에서 선언된 경우 OpenAPI 파서는 둘 중 하나를 무시합니다. 등록 프로세스에서는 오류가 발생하지 않습니다. -
이름이
properties인 OpenAPI는 이름과 속성 데이터 유형이 동일한 Apex의 속성입니다. -
OpenAPI
additionalProperties는 이름은 properties이고 유형은 Map<String, Type>인 Apex 속성으로 그룹화되며, 여기서 Type은 선언된additionalProperties유형입니다. 매핑 속성 유형은 키-값 쌍의 모음입니다. -
OpenAPI
additionalProperties는 독립형 Apex Map 유형으로 선언할 수 있는 경우에도 항상 Apex 개체 맵 속성으로 선언됩니다. 그 결과additionalProperties와 함께 정의된 명명된 개체 속성을 일관되게 처리합니다. -
OpenAPI
properties및additionalProperties는 모두 정의 섹션의 OpenAPI 매개 변수 스키마 또는 스키마에서 선언할 수 있습니다. OpenAPI 파서는 개체 속성 유형으로 선언된 경우properties또는additionalProperties를 무시합니다. 개체 속성 유형은 명명된properties또는additionalProperties만 정의해야 하며 둘 다 정의할 수는 없습니다. 문제를 해결하려면 개체 속성 정의를 정의 아래에 명명된 스키마로 배치하고 이름으로 참조합니다. -
OpenAPI 파서는 리터럴 선언과 유형이 지정되지 않은 스키마를 구분하지 않습니다.
additionalProperties: true,additionalProperties: false또는additionalProperties: {}과 같은 선언은 유형이 지정되지 않은 것으로 해석됩니다. 유형이 지정되지 않은additionalProperties는 무시됩니다. 어떤 유형이든 될 수 있는additionalProperties를 정의하는 해결 방법은 없습니다. -
플로는 맵 속성이 있는 Apex 개체 유형의 액세스 또는 조작을 허용하지는 않지만 동일한 Apex 개체 유형의 변수에 할당될 경우 콘텐츠를 투명하게 유지합니다. 플로에서 맵 데이터 구조를 조작하려면 맵 데이터 구조에 액세스할 수 있는 Apex 호출 가능 작업을 호출합니다. 외부 서비스 맵이 작동하는 예제는 외부 서비스 OpenAPI 2.0 스키마의 예 9를 참조하십시오.
시스템 버전 7 이상에서 만든 외부 서비스 등록에서 번호로 시작하는 이름으로 속성을 정의할 수 있습니다. 해당 속성이 Flow 또는 Apex 코드에서 액세스되면 인코딩 프로세스에서 속성 이름을 조정합니다.
{ "UserAvatarUrls": { "type": "object", "properties": { "24x24": { "type": "string", "description": "The URL of the user's 24x24 pixel avatar.", "format": "uri" }, "32x32": { "type": "string", "description": "The URL of the user's 32x32 pixel avatar.", "format": "uri" }, "16x16": { "type": "string", "description": "The URL of the user's 16x16 pixel avatar.", "format": "uri" }, "48x48": { "type": "string", "description": "The URL of the user's 48x48 pixel avatar.", "format": "uri" } } } }

