Принудительное создание раздела allOf при использовании Newtonsoft.Json.Schema.Generation.JSchemaGenerator - PullRequest
0 голосов
/ 26 сентября 2019

Я могу успешно использовать Newtonsoft.Json.Schema.Generation.JSchemaGenerator для генерации допустимого JSONSchema для данного класса.Это работает нормально, однако , сторонний потребитель требует, чтобы он имел

"allOf": [ { "$ref": "#/definitions/ClassName" } ]

блок кода в выданной схеме JSON.

В настоящее время я могу получитьвывод будет выглядеть как

{
    "$id": "https://xxxxx/classname",
    "definitions": {
        "ClassName": {
            "type": "object",
            "properties": {

, но мне нужно, чтобы он выглядел как

{
    "$id": "https://xxxxx/classname",
    "allOf": [
        {
            "$ref": "#/definitions/ClassName"
        }
    ],
    "definitions": {
        "ClassName": {
            "type": "object",
            "properties": {

Кто-нибудь знает, что мне нужно сделать, чтобы добиться этого?Ссылка есть только на один класс.

В настоящее время у меня есть генератор, использующий код, подобный следующему:

var _jsonSchemaGenerator = new JSchemaGenerator();
_jsonSchemaGenerator.SchemaIdGenerationHandling = SchemaIdGenerationHandling.None;
_jsonSchemaGenerator.SchemaLocationHandling = SchemaLocationHandling.Definitions;

var schema = _jsonSchemaGenerator.Generate(typeof(T));

console.WriteLine(schema);

Любая помощь приветствуется.

...