Я разрабатываю документацию API с помощью swagger.io и стараюсь, чтобы она соответствовала нашему прецеденту. Система будет получать и обрабатывать данные из всех источников, и каждый из них будет иметь разные наборы полей.Субобъект Freeform в json-schema
Хотя продукт обработки имеет одну и ту же схему, мы хотим также включить ввод в схему для справочной цели. Например, с учетом
{
"foo": "bar"
"bar": "baz"
}
Продукт переработки является
{
"original": {
"foo": "bar",
"bar": "baz"
}
"processed": {
"stdFieldA": "bar",
"stdFieldB": "baz"
}
}
Предполагая, что для каждого входа из различных источников, мы в конечном итоге, stdFieldA
и stdFieldB
. Таким образом, объект схемы ответа мы имеем
type: object
properties:
processed:
type: object
properties:
stdFieldA:
type: string
stdFieldB:
type: string
теперь, когда мы имеем processed
субобъекта определены, мы можем определить произвольный объект для исходного входа, так что этот объект из другого источника действует
{
"alpha": "lorem",
"beta": "ipsum"
}
Если я не получу никакого ответа на этот вопрос, моим решением проблемы будет сохранение исходного ввода в виде строки (преобразование исходного ввода в строку JSON).