public static void WriteParameter(IParseNodeWriter writer, Parameter parameter) { writer.WriteStartMap(); writer.WriteStringProperty("name", parameter.Name); if (parameter is BodyParameter) { writer.WriteStringProperty("in", "body"); // form? } else { writer.WriteStringProperty("in", parameter.In.ToString()); } writer.WriteStringProperty("description", parameter.Description); writer.WriteBoolProperty("required", parameter.Required, false); writer.WriteBoolProperty("deprecated", parameter.Deprecated, false); writer.WriteBoolProperty("allowEmptyValue", parameter.AllowEmptyValue, false); writer.WriteBoolProperty("allowReserved", parameter.AllowReserved, false); if (parameter is BodyParameter) { writer.WriteObject("schema", parameter.Schema, WriteSchemaOrReference); } else { WriteSchemaProperties(writer, parameter.Schema); } // writer.WriteList("examples", parameter.Examples, AnyNode.Write); // writer.WriteObject("example", parameter.Example, AnyNode.Write); writer.WriteExtensions(parameter.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); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WriteStringProperty("description", Description); writer.WriteBoolProperty("required", Required, false); writer.WriteBoolProperty("deprecated", Deprecated, false); writer.WriteBoolProperty("allowEmptyValue", AllowEmptyValue, false); writer.WriteStringProperty("style", Style); writer.WriteBoolProperty("explode", Explode, false); writer.WriteBoolProperty("allowReserved", AllowReserved, false); writer.WriteObject("schema", Schema, ModelHelper.Write); writer.WriteList("examples", Examples, AnyNode.Write); writer.WriteObject("example", Example, AnyNode.Write); writer.WriteMap("content", Content, ModelHelper.Write); 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(); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WriteStringProperty("description", Description); writer.WriteBoolProperty("required", Required, false); writer.WriteMap("content", Content, ModelHelper.Write); writer.WriteEndMap(); }
void IModel.Write(IParseNodeWriter writer) { writer.WriteStartMap(); writer.WriteList("tags", Tags, Tag.WriteRef); writer.WriteStringProperty("summary", Summary); writer.WriteStringProperty("description", Description); writer.WriteObject("externalDocs", ExternalDocs, ModelHelper.Write); writer.WriteStringProperty("operationId", OperationId); writer.WriteList <Parameter>("parameters", Parameters, ModelHelper.Write); writer.WriteObject("requestBody", RequestBody, ModelHelper.Write); writer.WriteMap <Response>("responses", Responses, ModelHelper.Write); writer.WriteMap <Callback>("callbacks", Callbacks, ModelHelper.Write); writer.WriteBoolProperty("deprecated", Deprecated, DeprecatedDefault); writer.WriteList("security", Security, ModelHelper.Write); writer.WriteList("servers", Servers, ModelHelper.Write); 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(); }