Example #1
0
 public static void WriteTag(IParseNodeWriter writer, Tag tag)
 {
     writer.WriteStartMap();
     writer.WriteStringProperty("name", tag.Name);
     writer.WriteStringProperty("description", tag.Description);
     writer.WriteEndMap();
 }
Example #2
0
        public static void WriteSecurityScheme(IParseNodeWriter writer, SecurityScheme securityScheme)
        {
            writer.WriteStartMap();
            if (securityScheme.Type == "http")
            {
                if (securityScheme.Scheme == "basic")
                {
                    writer.WriteStringProperty("type", "basic");
                }
            }
            else
            {
                writer.WriteStringProperty("type", securityScheme.Type);
            }
            switch (securityScheme.Type)
            {
            case "oauth2":
            //writer.WriteStringProperty("scheme", this.Scheme);
            //TODO:
            case "apiKey":
                writer.WriteStringProperty("in", securityScheme.In);
                writer.WriteStringProperty("name", securityScheme.Name);

                break;
            }
            writer.WriteExtensions(securityScheme.Extensions);
            writer.WriteEndMap();
        }
Example #3
0
        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();
        }
Example #4
0
 public static void WriteExternalDocs(IParseNodeWriter writer, ExternalDocs externalDocs)
 {
     writer.WriteStartMap();
     writer.WriteStringProperty("description", externalDocs.Description);
     writer.WriteStringProperty("url", externalDocs.Url?.OriginalString);
     writer.WriteEndMap();
 }
Example #5
0
 void IModel.Write(IParseNodeWriter writer)
 {
     writer.WriteStartMap();
     writer.WriteStringProperty("name", Name);
     writer.WriteStringProperty("description", Description);
     writer.WriteEndMap();
 }
Example #6
0
        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();
        }
Example #7
0
 void IModel.Write(IParseNodeWriter writer)
 {
     writer.WriteStartMap();
     writer.WriteStringProperty("description", this.Description);
     writer.WriteStringProperty("url", this.Url?.OriginalString);
     writer.WriteEndMap();
 }
Example #8
0
        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();
        }
Example #9
0
        void IModel.Write(IParseNodeWriter writer)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("name", Name);
            writer.WriteStringProperty("url", Url?.OriginalString);

            writer.WriteEndMap();
        }
Example #10
0
        void IModel.Write(IParseNodeWriter writer)
        {
            writer.WriteStartMap();
            writer.WriteStringProperty("href", Href);
            writer.WriteStringProperty("operationId", OperationId);
            writer.WriteMap("parameters", Parameters, (w, x) => { w.WriteValue(x.ToString()); });

            writer.WriteEndMap();
        }
Example #11
0
        void IModel.Write(IParseNodeWriter writer)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("url", Url);
            writer.WriteStringProperty("description", Description);

            writer.WriteMap("variables", Variables, ModelHelper.Write);
            writer.WriteEndMap();
        }
Example #12
0
        public static void WriteLicense(IParseNodeWriter writer, License license)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("name", license.Name);
            writer.WriteStringProperty("url", license.Url?.OriginalString);
            writer.WriteExtensions(license.Extensions);

            writer.WriteEndMap();
        }
Example #13
0
        public static void WriteServerVariable(IParseNodeWriter writer, ServerVariable variable)
        {
            writer.WriteStartMap();

            writer.WriteList("enum", variable.Enum, (nodeWriter, s) => nodeWriter.WriteValue(s));
            writer.WriteStringProperty("default", variable.Default);
            writer.WriteStringProperty("description", variable.Description);
            writer.WriteExtensions(variable.Extensions);

            writer.WriteEndMap();
        }
Example #14
0
        public static void WriteLink(IParseNodeWriter writer, Link link)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("href", link.Href);
            writer.WriteStringProperty("operationId", link.OperationId);
            writer.WriteMap("parameters", link.Parameters, (w, x) => { w.WriteValue(x.ToString()); });
            writer.WriteExtensions(link.Extensions);

            writer.WriteEndMap();
        }
Example #15
0
        public static void WriteContact(IParseNodeWriter writer, Contact contact)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("name", contact.Name);
            writer.WriteStringProperty("url", contact.Url?.OriginalString);
            writer.WriteStringProperty("email", contact.Email);
            writer.WriteExtensions(contact.Extensions);

            writer.WriteEndMap();
        }
Example #16
0
        public static void WriteServer(IParseNodeWriter writer, Server server)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("url", server.Url);
            writer.WriteStringProperty("description", server.Description);

            writer.WriteMap("variables", server.Variables, WriteServerVariable);
            writer.WriteExtensions(server.Extensions);
            writer.WriteEndMap();
        }
Example #17
0
 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();
 }
Example #18
0
        void IModel.Write(IParseNodeWriter writer)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("title", Title);
            writer.WriteStringProperty("description", Description);
            writer.WriteStringProperty("termsOfService", TermsOfService);
            writer.WriteObject("contact", Contact, ModelHelper.Write);
            writer.WriteObject("license", License, ModelHelper.Write);
            writer.WriteStringProperty("version", Version);

            writer.WriteEndMap();
        }
Example #19
0
 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();
 }
Example #20
0
        public static void WriteInfo(IParseNodeWriter writer, Info info)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("title", info.Title);
            writer.WriteStringProperty("description", info.Description);
            writer.WriteStringProperty("termsOfService", info.TermsOfService);
            writer.WriteObject("contact", info.Contact, WriteContact);
            writer.WriteObject("license", info.License, WriteLicense);
            writer.WriteStringProperty("version", info.Version);
            writer.WriteExtensions(info.Extensions);

            writer.WriteEndMap();
        }
Example #21
0
        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();
        }
Example #22
0
        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();
        }
Example #23
0
        public static void WriteHeader(IParseNodeWriter writer, Header header)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("description", header.Description);
            writer.WriteBoolProperty("required", header.Required, false);
            writer.WriteBoolProperty("deprecated", header.Deprecated, false);
            writer.WriteBoolProperty("allowEmptyValue", header.AllowEmptyValue, false);
            writer.WriteStringProperty("style", header.Style);
            writer.WriteBoolProperty("explode", header.Explode, false);
            writer.WriteBoolProperty("allowReserved", header.AllowReserved, false);
            writer.WriteObject("schema", header.Schema, WriteSchema);
            writer.WriteList("examples", header.Examples, AnyNode.Write);
            writer.WriteObject("example", header.Example, AnyNode.Write);

            writer.WriteEndMap();
        }
Example #24
0
        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();
        }
Example #25
0
        void IModel.Write(IParseNodeWriter writer)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("description", Description);
            writer.WriteBoolProperty("required", Required, false);
            writer.WriteMap("content", Content, ModelHelper.Write);

            writer.WriteEndMap();
        }
Example #26
0
 public static void WriteParameter(IParseNodeWriter writer, Parameter parameter)
 {
     writer.WriteStartMap();
     writer.WriteStringProperty("name", parameter.Name);
     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.WriteStringProperty("style", parameter.Style);
     writer.WriteBoolProperty("explode", parameter.Explode, false);
     writer.WriteBoolProperty("allowReserved", parameter.AllowReserved, false);
     writer.WriteObject("schema", parameter.Schema, WriteSchemaOrReference);
     writer.WriteList("examples", parameter.Examples, AnyNode.Write);
     writer.WriteObject("example", parameter.Example, AnyNode.Write);
     writer.WriteMap("content", parameter.Content, WriteMediaType);
     writer.WriteExtensions(parameter.Extensions);
     writer.WriteEndMap();
 }
Example #27
0
        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();
        }
Example #28
0
        public static void WriteRequestBody(IParseNodeWriter writer, RequestBody requestBody)
        {
            writer.WriteStartMap();

            writer.WriteStringProperty("description", requestBody.Description);
            writer.WriteBoolProperty("required", requestBody.Required, false);
            writer.WriteMap("content", requestBody.Content, WriteMediaType);
            writer.WriteExtensions(requestBody.Extensions);

            writer.WriteEndMap();
        }
Example #29
0
        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);
            writer.WriteList <Parameter>("parameters", operation.Parameters, WriteParameterOrReference);
            writer.WriteObject("requestBody", operation.RequestBody, WriteRequestBodyOrReference);
            writer.WriteMap <Response>("responses", operation.Responses, WriteResponseOrReference);
            writer.WriteMap <Callback>("callbacks", operation.Callbacks, WriteCallbackOrReference);
            writer.WriteBoolProperty("deprecated", operation.Deprecated, Operation.DeprecatedDefault);
            writer.WriteList("security", operation.Security, WriteSecurityRequirement);
            writer.WriteList("servers", operation.Servers, WriteServer);
            writer.WriteExtensions(operation.Extensions);

            writer.WriteEndMap();
        }
Example #30
0
        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();
        }