Tôi không cần phải làm gì. Trong khi xác định định dạng của kết quả RESTful API của tôi (viz JSON), tôi cảm thấy nó sẽ dễ dàng hơn để ghi lại nó là của riêng tôi JSON schema. Trong khi viết một câu hỏi tôi có một vài câu hỏi:Một số câu hỏi liên quan đến lược đồ json tùy chỉnh
- Trong kết quả của tôi JSON, làm cách nào để chỉ định URI cho giản đồ mà nó xác nhận? --edit-- có sử dụng thuộc tính
$schema
không? - Có bất kỳ quy ước/nguyên tắc nào cho phiên bản lược đồ JSON không? Có một số thuộc tính mà tôi nên/có thể xác định bên trong lược đồ của tôi như là các thuộc tính không? Tôi thấy JSON schema itself không có phiên bản được xác định ngoại trừ trong URI được chỉ định làm giá trị của khóa
$schema
. - Tôi có thể chia nhỏ lược đồ JSON LỚN của tôi thành nhiều lược đồ nhỏ hơn và bao gồm một lược đồ khác? Giống như #include trong C++, sau đó tham khảo nhiều lược đồ trong JSON tôi đã gửi tới người dùng dưới dạng kết quả.
- Tôi có thể xác định giá trị tùy chỉnh cho "loại" chính không? Ví dụ. Tôi muốn sử dụng lại định nghĩa của "ngày" như thế này:
[bỏ qua dòng này, đó là để có được những định dạng làm việc cho sau json ..]
{
"date":{
"type":"object",
"properties":{
"month":{
"type":"integer",
"minimum":1,
"maximum":12
},
"year":{
"type":"integer",
"minimum":0
}
}
},
"personInfo":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"dateOfBirth":{
"type":"date"
}
}
},
"student":{
"type":"object",
"properties":{
"id":{
"type":"personInfo"
},
"pass_out_year":{
"type":"date"
}
}
}
}
thay vì cung cấp thuộc tính của " ngày" ở nhiều nơi như thế này:
{
"personInfo":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"dateOfBirth":{
"type":"object",
"properties":{
"month":{
"type":"integer",
"minimum":1,
"maximum":12
},
"year":{
"type":"integer",
"minimum":0
}
}
}
}
},
"student":{
"type":"object",
"properties":{
"id":{
"type":"personInfo"
},
"pass_out_year":{
"type":"object",
"properties":{
"month":{
"type":"integer",
"minimum":1,
"maximum":12
},
"year":{
"type":"integer",
"minimum":0
}
}
}
}
}
}
theo 5.1 loại in the spec, đó là không thể, nhưng nó có vẻ như một usecase cơ bản như vậy!
Có vẻ như công việc quá nhiều, vì vậy tôi sẽ không làm điều đó. Nhưng có, một lựa chọn khả thi, đặc biệt là trong công nghệ ngày nay env Tôi chắc chắn để tìm công cụ để làm điều này trong bất kỳ ngôn ngữ/env. Cảm ơn. – Kashyap
Trong v4 của lược đồ JSON, điều này dường như không được phép nữa: http://json-schema.org/latest/json-schema-validation.html#anchor79 – Mitar