public static void WriteResponse(IParseNodeWriter writer, Response response) { writer.WriteStartMap(); writer.WriteStringProperty("description", response.Description); if (response.Content != null) { var mediatype = response.Content.FirstOrDefault(); if (mediatype.Value != null) { writer.WriteObject("schema", mediatype.Value.Schema, WriteSchemaOrReference); if (mediatype.Value.Example != null) { writer.WritePropertyName("examples"); writer.WriteStartMap(); writer.WritePropertyName(mediatype.Key); AnyNode.Write(writer, mediatype.Value.Example); writer.WriteEndMap(); } } } writer.WriteMap("headers", response.Headers, WriteHeaderOrReference); writer.WriteExtensions(response.Extensions); writer.WriteEndMap(); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WritePropertyName("openapi"); writer.WriteValue("3.0.0"); writer.WriteObject("info", Info, ModelHelper.Write); writer.WriteList("servers", Servers, ModelHelper.Write); writer.WritePropertyName("paths"); if (Paths.PathItems.Count() > 0) { ModelHelper.Write(writer, Paths); } else { writer.WriteValue("{}"); } writer.WriteList("tags", Tags, ModelHelper.Write); if (!Components.IsEmpty()) { writer.WriteObject("components", Components, ModelHelper.Write); } if (ExternalDocs.Url != null) { writer.WriteObject("externalDocs", ExternalDocs, ModelHelper.Write); } writer.WriteList("security", SecurityRequirements, ModelHelper.Write); writer.WriteEndMap(); }
public static void WritePathItem(IParseNodeWriter writer, PathItem pathItem) { writer.WriteStartMap(); writer.WriteStringProperty("summary", pathItem.Summary); writer.WriteStringProperty("description", pathItem.Description); if (pathItem.Parameters != null && pathItem.Parameters.Count > 0) { writer.WritePropertyName("parameters"); writer.WriteStartList(); foreach (var parameter in pathItem.Parameters) { WriteParameter(writer, parameter); } writer.WriteEndList(); } writer.WriteList("servers", pathItem.Servers, WriteServer); foreach (var operationPair in pathItem.Operations) { writer.WritePropertyName(operationPair.Key); WriteOperation(writer, operationPair.Value); } writer.WriteExtensions(pathItem.Extensions); writer.WriteEndMap(); }
public static void WriteOpenApiDocument(IParseNodeWriter writer, OpenApiDocument doc) { writer.WriteStartMap(); writer.WritePropertyName("openapi"); writer.WriteValue("3.0.0"); writer.WriteObject("info", doc.Info, WriteInfo); writer.WriteList("servers", doc.Servers, WriteServer); writer.WritePropertyName("paths"); writer.WriteStartMap(); WritePaths(writer, doc.Paths); writer.WriteEndMap(); writer.WriteList("tags", doc.Tags, WriteTag); if (!doc.Components.IsEmpty()) { writer.WriteObject("components", doc.Components, WriteComponents); } if (doc.ExternalDocs.Url != null) { writer.WriteObject("externalDocs", doc.ExternalDocs, WriteExternalDocs); } writer.WriteList("security", doc.SecurityRequirements, WriteSecurityRequirement); writer.WriteExtensions(doc.Extensions); writer.WriteEndMap(); }
public static void WriteOperation(IParseNodeWriter writer, Operation operation) { writer.WriteStartMap(); writer.WriteList("tags", operation.Tags, Tag.WriteRef); writer.WriteStringProperty("summary", operation.Summary); writer.WriteStringProperty("description", operation.Description); writer.WriteObject("externalDocs", operation.ExternalDocs, WriteExternalDocs); writer.WriteStringProperty("operationId", operation.OperationId); var parameters = new List <Parameter>(operation.Parameters); Parameter bodyParameter = null; if (operation.RequestBody != null) { writer.WritePropertyName("consumes"); writer.WriteStartList(); var consumes = operation.RequestBody.Content.Keys.Distinct(); foreach (var mediaType in consumes) { writer.WriteListItem(mediaType, (w, s) => w.WriteValue(s)); } writer.WriteEndList(); // Create bodyParameter bodyParameter = new BodyParameter() { Name = "body", Description = operation.RequestBody.Description, Schema = operation.RequestBody.Content.First().Value.Schema }; // add to parameters parameters.Add(bodyParameter); } var produces = operation.Responses.Where(r => r.Value.Content != null).SelectMany(r => r.Value.Content?.Keys).Distinct(); if (produces.Count() > 0) { writer.WritePropertyName("produces"); writer.WriteStartList(); foreach (var mediaType in produces) { writer.WriteListItem(mediaType, (w, s) => w.WriteValue(s)); } writer.WriteEndList(); } writer.WriteList <Parameter>("parameters", parameters, WriteParameterOrReference); writer.WriteMap <Response>("responses", operation.Responses, WriteResponseOrReference); writer.WriteBoolProperty("deprecated", operation.Deprecated, Operation.DeprecatedDefault); writer.WriteList("security", operation.Security, WriteSecurityRequirement); writer.WriteExtensions(operation.Extensions); writer.WriteEndMap(); }
private static void WriteSchemaProperties(IParseNodeWriter writer, Schema schema) { writer.WriteStringProperty("title", schema.Title); writer.WriteStringProperty("type", schema.Type); writer.WriteStringProperty("format", schema.Format); writer.WriteStringProperty("description", schema.Description); writer.WriteNumberProperty("maxLength", schema.MaxLength); writer.WriteNumberProperty("minLength", schema.MinLength); writer.WriteStringProperty("pattern", schema.Pattern); writer.WriteStringProperty("default", schema.Default); writer.WriteList("required", schema.Required, (nodeWriter, s) => nodeWriter.WriteValue(s)); writer.WriteNumberProperty("maximum", schema.Maximum); writer.WriteBoolProperty("exclusiveMaximum", schema.ExclusiveMaximum, false); writer.WriteNumberProperty("minimum", schema.Minimum); writer.WriteBoolProperty("exclusiveMinimum", schema.ExclusiveMinimum, false); if (schema.AdditionalProperties != null) { writer.WritePropertyName("additionalProperties"); WriteSchemaOrReference(writer, schema.AdditionalProperties); } if (schema.Items != null) { writer.WritePropertyName("items"); WriteSchemaOrReference(writer, schema.Items); } writer.WriteNumberProperty("maxItems", schema.MaxItems); writer.WriteNumberProperty("minItems", schema.MinItems); if (schema.Properties != null) { writer.WritePropertyName("properties"); writer.WriteStartMap(); foreach (var prop in schema.Properties) { writer.WritePropertyName(prop.Key); if (prop.Value != null) { WriteSchemaOrReference(writer, prop.Value); } else { writer.WriteValue("null"); } } writer.WriteEndMap(); } writer.WriteNumberProperty("maxProperties", schema.MaxProperties); writer.WriteNumberProperty("minProperties", schema.MinProperties); writer.WriteList("enum", schema.Enum, (nodeWriter, s) => nodeWriter.WriteValue(s)); writer.WriteExtensions(schema.Extensions); }
public static void WriteObject <T>(this IParseNodeWriter writer, string propertyName, T entity, Action <IParseNodeWriter, T> parser) { if (entity != null) { writer.WritePropertyName(propertyName); parser(writer, entity); } }
public static void WriteNumberProperty(this IParseNodeWriter writer, string name, decimal?value) { if (value != null) { writer.WritePropertyName(name); writer.WriteValue((decimal)value); } }
public static void WriteStringProperty(this IParseNodeWriter writer, string name, string value) { if (!String.IsNullOrEmpty(value)) { writer.WritePropertyName(name); writer.WriteValue(value); } }
public static void WriteNumberProperty(this IParseNodeWriter writer, string name, decimal value, decimal?defaultValue = null) { if (defaultValue == null || value != defaultValue) { writer.WritePropertyName(name); writer.WriteValue(value); } }
public static void WritePaths(IParseNodeWriter writer, Paths paths) { foreach (var pathItem in paths.PathItems) { writer.WritePropertyName(pathItem.Key); WritePathItem(writer, pathItem.Value); } writer.WriteExtensions(paths.Extensions); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); foreach (var pathItem in PathItems) { writer.WritePropertyName(pathItem.Key); pathItem.Value.Write(writer); } writer.WriteEndMap(); }
public static void WriteExtensions(this IParseNodeWriter writer, Dictionary <string, string> extensions) { if (extensions != null && extensions.Count > 0) { foreach (KeyValuePair <string, string> extension in extensions) { writer.WritePropertyName(extension.Key); writer.WriteValue(extension.Value); } } }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WriteStringProperty("summary", Summary); writer.WriteStringProperty("description", Description); if (Value != null) { writer.WritePropertyName("value"); Value.Write(writer); } writer.WriteEndMap(); }
public override void Write(IParseNodeWriter writer) { writer.WriteStartMap(); nodes.ForEach(x => { writer.WritePropertyName(x.Name); x.Value.Write(writer); }); writer.WriteEndMap(); }
public static void WriteMap <T>(this IParseNodeWriter writer, string propertyName, IDictionary <string, T> list, Action <IParseNodeWriter, T> parser) { if (list != null && list.Count() > 0) { writer.WritePropertyName(propertyName); foreach (var item in list) { writer.WriteStartMap(); writer.WritePropertyName(item.Key); if (item.Value != null) { parser(writer, item.Value); } else { writer.WriteNull(); } writer.WriteEndMap(); } } }
public static void WriteExample(IParseNodeWriter writer, Example example) { writer.WriteStartMap(); writer.WriteStringProperty("summary", example.Summary); writer.WriteStringProperty("description", example.Description); if (example.Value != null) { writer.WritePropertyName("value"); example.Value.Write(writer); } writer.WriteExtensions(example.Extensions); writer.WriteEndMap(); }
public static void WriteList <T>(this IParseNodeWriter writer, string propertyName, IList <T> list, Action <IParseNodeWriter, T> parser) { if (list != null && list.Count() > 0) { writer.WritePropertyName(propertyName); foreach (var item in list) { writer.WriteStartList(); parser(writer, item); writer.WriteEndList(); } } }
public void Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WriteStringProperty("summary", Summary); writer.WriteStringProperty("description", Description); if (Parameters != null && Parameters.Count > 0) { writer.WritePropertyName("parameters"); writer.WriteStartList(); foreach (var parameter in this.Parameters) { ModelHelper.Write(writer, parameter); } writer.WriteEndList(); } writer.WriteList("servers", Servers, ModelHelper.Write); foreach (var operationPair in Operations) { writer.WritePropertyName(operationPair.Key); ModelHelper.Write(writer, operationPair.Value); } writer.WriteEndMap(); }
public static void WriteSecurityRequirement(IParseNodeWriter writer, SecurityRequirement securityRequirement) { writer.WriteStartMap(); foreach (var scheme in securityRequirement.Schemes) { writer.WritePropertyName(scheme.Key.Pointer.TypeName); writer.WriteStartList(); foreach (var scope in scheme.Value) { writer.WriteValue(scope); } writer.WriteEndList(); } writer.WriteEndMap(); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); if (Enum.Count > 0) { writer.WritePropertyName("enum"); writer.WriteStartList(); foreach (var enumItem in Enum) { writer.WriteValue(enumItem); } writer.WriteEndList(); } writer.WriteStringProperty("default", Default); writer.WriteStringProperty("description", Description); writer.WriteEndMap(); }
private static void WriteHostInfo(IParseNodeWriter writer, IList <Server> servers) { if (servers == null || servers.Count == 0) { return; } var firstServer = servers.First(); var url = new Uri(firstServer.Url); writer.WriteStringProperty("host", url.GetComponents(UriComponents.Host | UriComponents.Port, UriFormat.SafeUnescaped)); writer.WriteStringProperty("basePath", url.AbsolutePath); var schemes = servers.Select(s => new Uri(s.Url).Scheme).Distinct(); writer.WritePropertyName("schemes"); writer.WriteStartList(); foreach (var scheme in schemes) { writer.WriteListItem(scheme, (w, s) => w.WriteValue(s)); } writer.WriteEndList(); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); foreach (var scheme in Schemes) { writer.WritePropertyName(scheme.Key.Pointer.TypeName); if (scheme.Value.Count > 0) { writer.WriteStartList(); foreach (var scope in scheme.Value) { writer.WriteValue(scope); } writer.WriteEndList(); } else { writer.WriteValue("[]"); } } writer.WriteEndMap(); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WriteStringProperty("title", Title); writer.WriteStringProperty("type", Type); writer.WriteStringProperty("format", Format); writer.WriteStringProperty("description", Description); writer.WriteNumberProperty("maxLength", MaxLength); writer.WriteNumberProperty("minLength", MinLength); writer.WriteStringProperty("pattern", Pattern); writer.WriteStringProperty("default", Default); if (Required != null && Required.Length > 0) { writer.WritePropertyName("required"); writer.WriteStartList(); foreach (var name in Required) { writer.WriteValue(name); } writer.WriteEndList(); } writer.WriteNumberProperty("maximum", Maximum); writer.WriteBoolProperty("exclusiveMaximum", ExclusiveMaximum, false); writer.WriteNumberProperty("minimum", Minimum); writer.WriteBoolProperty("exclusiveMinimum", ExclusiveMinimum, false); if (Items != null) { writer.WritePropertyName("items"); ModelHelper.Write(writer, Items); } writer.WriteNumberProperty("maxItems", MaxItems); writer.WriteNumberProperty("minItems", MinItems); if (Properties != null) { writer.WritePropertyName("properties"); writer.WriteStartMap(); foreach (var prop in Properties) { writer.WritePropertyName(prop.Key); if (prop.Value != null) { ModelHelper.Write(writer, prop.Value); } else { writer.WriteValue("null"); } } writer.WriteEndMap(); } writer.WriteNumberProperty("maxProperties", MaxProperties); writer.WriteNumberProperty("minProperties", MinProperties); if (Enum.Count > 0) { writer.WritePropertyName("enum"); writer.WriteStartList(); foreach (var item in Enum) { writer.WriteValue(item); } writer.WriteEndList(); } writer.WriteEndMap(); }