Json Schema와 작동하는 인터페이스를 작성하는 데 도움이되고 해당 스키마를 기반으로 인터페이스 생성에 대한 질문이 있습니다. 내부 사용자 용과 외부 사용자 용의 두 가지 디스플레이 유형이 있습니다. 둘 다 동일한 데이터를 처리하지만 외부 사용자는 내부 사용자보다 필드의 더 작은 하위 집합을보아야합니다.다중 레이아웃에서 json 스키마 사용
{
"$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" }
}
}
}
내부 사용자가 모든 필드에 액세스 할 수있을 것입니다,하지만 외부 사용자가 읽기/계정 필드를 쓸 수 없게한다 : 예를 들어
, 여기에 하나의 스키마, 그것은 사망 기사를 정의 .
외부 사용자를위한 두 번째 스키마를 만들어야합니까, 아니면 각 필드마다 다른 표시 수준이나 공개/비공개를 나타내는 방법이 있습니까?
당신이 JSON 스키마 –
실제 그래서 내 유일한에 적용 할 수있는 접근 수정이 없습니다 옵션은 매우 유사한 두 번째 스키마를 만드는 것입니다. 괜찮 으면, 그 경우에, 나는 그 방향으로 나가기 전에 확실히 할 필요가있다. – Lisa
인터페이스 생성은 JSON 스키마 스펙의 일부가 아니므로 UI 생성에 사용하는 라이브러리가 지원하는 모든 액세스 수정자를 사용할 수 있습니다. – esp