2025-04-24 18:31:27 +08:00

362 lines
7.0 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
namespace Swashbuckle.Swagger
{
public class SwaggerDocument
{
public readonly string swagger = "2.0";
public Info info;
public string host;
public string basePath;
public IList<string> schemes;
public IList<string> consumes;
public IList<string> produces;
public IDictionary<string, PathItem> paths;
public IDictionary<string, Schema> definitions;
public IDictionary<string, Parameter> parameters;
public IDictionary<string, Response> responses;
public IDictionary<string, SecurityScheme> securityDefinitions;
public IList<IDictionary<string, IEnumerable<string>>> security;
public IList<Tag> tags;
public ExternalDocs externalDocs;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
/// <summary>
/// 多版本
/// </summary>
public IList<Info> muiltVersion;
}
public class Info
{
public string version;
public string title;
public string description;
public string termsOfService;
/// <summary>
/// 文档路径
/// </summary>
public string docPath;
/// <summary>
/// 是否默认路由
/// </summary>
[JsonIgnore]
internal bool isDefaultRoute;
public Contact contact;
public License license;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
public class Contact
{
public string name;
public string url;
public string email;
}
public class License
{
public string name;
public string url;
}
public class PathItem
{
[JsonProperty("$ref")]
public string @ref;
public Operation get;
public Operation put;
public Operation post;
public Operation delete;
public Operation options;
public Operation head;
public Operation patch;
public IList<Parameter> parameters;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
public class Operation
{
public IList<string> tags;
public string summary { get; set; }
/// <summary>
/// 备注
/// </summary>
public string description;
public ExternalDocs externalDocs;
public string operationId;
public IList<string> consumes;
public IList<string> produces;
public IList<Parameter> parameters;
public IDictionary<string, Response> responses;
public IList<string> schemes;
public bool? deprecated;
public IList<IDictionary<string, IEnumerable<string>>> security;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
/// <summary>
/// 开发状态
/// </summary>
public string devStatus { get; set; }
/// <summary>
/// 开发状态名称
/// </summary>
public string devStatusName { get; set; }
/// <summary>
/// 开发者
/// </summary>
public string developer { get; set; }
/// <summary>
/// 修改日期
/// </summary>
public string modifyDate { get; set; }
/// <summary>
/// 是否显示开发状态
/// </summary>
public bool showDevStatus { get; set; }
}
public class Tag
{
public string name;
public string description;
public ExternalDocs externalDocs;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
public class ExternalDocs
{
public string description;
public string url;
}
public class Parameter : PartialSchema
{
[JsonProperty("$ref")]
public string @ref;
public string name;
public string @in;
public string description;
public bool? required;
public Schema schema;
}
public class Schema
{
[JsonProperty("$ref")]
public string @ref;
public string format;
public string title;
public string description;
public object @default;
public int? multipleOf;
public int? maximum;
public bool? exclusiveMaximum;
public int? minimum;
public bool? exclusiveMinimum;
public int? maxLength;
public int? minLength;
public string pattern;
public int? maxItems;
public int? minItems;
public bool? uniqueItems;
public int? maxProperties;
public int? minProperties;
public IList<string> required;
public IList<object> @enum;
public string type;
public Schema items;
public IList<Schema> allOf;
public IDictionary<string, Schema> properties;
public Schema additionalProperties;
public string discriminator;
public bool? readOnly;
public Xml xml;
public ExternalDocs externalDocs;
public object example;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
public class PartialSchema
{
public string type;
public string format;
public PartialSchema items;
public string collectionFormat;
public object @default;
public int? maximum;
public bool? exclusiveMaximum;
public int? minimum;
public bool? exclusiveMinimum;
public int? maxLength;
public int? minLength;
public string pattern;
public int? maxItems;
public int? minItems;
public bool? uniqueItems;
public IList<object> @enum;
public int? multipleOf;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
public class Response
{
public string description;
public Schema schema;
public IDictionary<string, Header> headers;
public object examples;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
public class Header : PartialSchema
{
public string description;
}
public class Xml
{
public string name;
public string @namespace;
public string prefix;
public bool? attribute;
public bool? wrapped;
}
public class SecurityScheme
{
public string type;
public string description;
public string name;
public string @in;
public string flow;
public string authorizationUrl;
public string tokenUrl;
public IDictionary<string, string> scopes;
public Dictionary<string, object> vendorExtensions = new Dictionary<string, object>();
}
}