私はJson Schemaで動作するインターフェイスを構築するのを手伝っています。そのスキーマに基づいてインターフェイスの生成について質問があります。内部ユーザー用と外部ユーザー用の2つの表示タイプがあります。どちらも同じデータを処理していますが、外部ユーザーは内部ユーザーよりもフィールドのサブセットが小さく表示されます。複数のレイアウトでjsonスキーマを使用する
例えば、ここで1つのスキーマがあり、それは死亡記事を定義します。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "",
"type": "object",
"required": [
"id",
"deceased"
],
"properties": {
"id": { "type": "string" },
"account": {
"type": "object",
"required": [
"name"
],
"properties": {
"id": { "type": "number" },
"name": { "type": "string" },
"website": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "string",
"maxLength": 0
}
]
},
"email": {
"anyOf": [
{
"type": "string",
"format": "email"
},
{
"type": "string",
"maxLength": 0
}
]
},
"address": {
"type": "object",
"properties": {
"address1": { "type": "string" },
"address2": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" },
"postalCode": { "type": "string" },
"country": { "type": "string" }
}
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"format": "phone"
},
{
"type": "string",
"maxLength": 0
}
]
},
"faxNumber": {
"anyOf": [
{
"type": "string",
"format": "phone"
},
{
"type": "string",
"maxLength": 0
}
]
},
"type": { "type": "string" }
}
},
"deceased": {
"type": "object",
"required": [
"fullName"
],
"properties": {
"fullName": { "type": "string" },
"prefix": { "type": "string" },
"firstName": { "type": "string" },
"middleName": { "type": "string" },
"nickName": { "type": "string" },
"lastName1": { "type": "string" },
"lastName2": { "type": "string" },
"maidenName": { "type": "string" },
"suffix": { "type": "string" }
}
},
"description": { "type": "string" },
"photos": {
"type": "array",
"items": { "type": "string" }
}
}
}
内部ユーザーは、すべてのフィールドにアクセスすることができるだろうが、外部のユーザーが書き込み/アカウントのフィールドを読み取ることができないはず。
は、私が外部ユーザーのための2番目のスキーマをしなければならない、または別の表示レベルを示すための方法や、各フィールドのプライベート/パブリックはありますか?
あなたはJSONスキーマ –
本当だから私の唯一に適用できるのアクセス修飾子はありません2番目の非常によく似たスキーマを作るだけですか?そうだとすれば、その方向に進む前に必ず確認する必要があります。 – Lisa
インターフェイスの生成はJSONスキーマ仕様の一部ではないため、UI生成に使用するライブラリがサポートするアクセス修飾子を使用することができます – esp