制限
OpenAPIの仕様 in Talend Data Mapperにおける最新の実装には、いくつかの制限があります。
サポートされていない機能
- propertiesとadditionalPropertiesが混在するオブジェクトはサポートされていません。次の例をご覧ください。
schemas: Coord: type: object properties: latitude: type: number longitude: type: number additionalProperties: type: number
- プロパティ上でmultipleOfキーワードは制約として無視されます。次の例をご覧ください。
schema: type: array items: type: integer multipleOf: 2
Talend Data Mapperでは制約が無視されます。
- 次のスキーマに示すように、properties内のデフォルト値は無視されます。
schema: type: object properties: a: type: string default: Hello
値Helloは、エレメントaのデフォルト値としてインポートされません。
- 次の例に示すようにnullableキーワードはスキーマ内で無視されます。
schema: type: array items: type: string nullable: true
nullable属性はインポートされません。
- プロパティのあるオブジェクトはサポートされません。OpenAPIでは、additionalPropertiesキーワードをブール値と一緒に使用できます。その場合、セマンティックはキーまたは値のペアのマップとは異なり、追加のプロパティが受け入れられることが示されます。実行時に追加のエレメントが表示されることがある場合(ダイナミックスキーマ)、Talend Data Mapperにはopenストラクチャーのコンセプトがありません。同様に、そのように定義されているプロパティは無視されます。
"PutResourceAttributesResult": { "properties": {}, "type": "object" }, "headers" : { }
- OpenAPI Specifications 3.0で説明されている拡張機能 (英語のみ)は、Talend Data Mapperでサポートされていません。
- 次のコード例で示されているように、Talend Data Mapperではnotというキーワードがサポートされていません。
PetByAge: type: object properties: age: type: integer nickname: not: type: integer required: - age
既知の問題
OpenAPI 3.0のサポートにはJSONスキーマであるAnyOfとOneOfに基づく構成が含まれています。これらのスキーマはTalend Data MapperによってChoiceエレメントに変換されています。これらのChoiceエレメントが子エレメントである(トップエレメントでない)場合、JSONを含むTalend Data Mapperリーダーとライターはエレメントを正しく処理します。ただし、Choiceエレメントがストラクチャーのトップレベルエレメントまたはルートエレメントである場合、JSONを含むTalend Data Mapperリーダーとライターは、データの解析または書き込みに失敗します。