Swashbuckle ISchemaFilter Массив примеров объектов - PullRequest
2 голосов
/ 16 января 2020

Swashbuckle 5.0.0r c -4

Я пытаюсь настроить пример запроса для одной из моих конечных точек API. Внешний вид Swagger по умолчанию выглядит следующим образом:

[
  {
    "name": "string"
  }
]

Это технически правильно и работает, когда вы заменяете «строку» фактическим значением. Однако я хочу иметь возможность настроить пример, который будет отображать следующее:

[
  {
    "name": "David"
  },
  {
    "name": "John"
  },
]

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

public void Apply(OpenApiSchema schema, SchemaFilterContext context)
    {
        schema.Type = "array";

        var examples = new OpenApiArray() {
            new OpenApiObject
            {
                ["Name"] = new OpenApiString("David")
            },
            new OpenApiObject
            {
                ["Name"] = new OpenApiString("John")
            }
        };

        schema.Example = examples;
    }

Это, однако, приводит к:

  [
    [ <- This isn't wanted
      {
        "name": "David"
      },
      {
        "name": "John"
      },
    ]
  ]

Пожалуйста, дайте мне знать, что я делаю неправильно. Большая часть документации, которую я могу найти, либо не упоминает этот вариант использования, либо делает это путем изменения файлов xml, которые я предпочел бы не делать.

...