예제 #1
0
        private IEnumerable <ApiDocument> DocumentObjGenerator(HttpConfiguration configuration)
        {
            IApiExplorer apiExplorer = configuration.Services.GetApiExplorer();
            var          des         = apiExplorer.ApiDescriptions;

            ///APIs
            foreach (var apiDescription in des)
            {
                var apiDoc = new ApiDocument
                {
                    Method       = apiDescription.HttpMethod.ToString(),
                    Url          = apiDescription.RelativePath,
                    ResponseJson = apiDescription.ResponseDescription.ResponseType == null
                        ? "EMPTY"
                        : JsonHelper.FormatJson(JsonConvert.SerializeObject(MakeInstance(apiDescription.ResponseDescription.ResponseType))),
                    ResponseProperties = MakeDocument(apiDescription.ResponseDescription.ResponseType)
                };

                var parameters = apiDescription.ParameterDescriptions.GroupBy(i => i.Source);
                var req        = "EMPTY";

                //BODY OR URL
                foreach (var parameter in parameters)
                {
                    //writer.WriteLine("####" + parameter.Key);

                    foreach (var apiParameterDescription in parameter)
                    {
                        if (apiParameterDescription.ParameterDescriptor == null)
                        {
                            continue;
                        }

                        if (parameter.Key == ApiParameterSource.FromBody)
                        {
                            var ins = MakeInstance(apiParameterDescription.ParameterDescriptor.ParameterType);
                            apiDoc.RequestBodyJson   = JsonHelper.FormatJson(JsonConvert.SerializeObject(ins));
                            apiDoc.RequestProperties = MakeDocument(apiParameterDescription.ParameterDescriptor.ParameterType);
                        }
                        else
                        {
                            apiDoc.UrlProperties = MakeDocument(apiParameterDescription.ParameterDescriptor.ParameterType, apiParameterDescription.Name);
                        }
                    }
                }

                yield return(apiDoc);
            }
        }
예제 #2
0
        private IEnumerable<ApiDocument> DocumentObjGenerator(HttpConfiguration configuration)
        {
            IApiExplorer apiExplorer = configuration.Services.GetApiExplorer();
            var des = apiExplorer.ApiDescriptions;

            ///APIs
            foreach (var apiDescription in des)
            {
                var apiDoc = new ApiDocument
                {
                    Method = apiDescription.HttpMethod.ToString(),
                    Url = apiDescription.RelativePath,
                    ResponseJson = apiDescription.ResponseDescription.ResponseType == null
                        ? "EMPTY"
                        : JsonHelper.FormatJson(JsonConvert.SerializeObject(MakeInstance(apiDescription.ResponseDescription.ResponseType))),
                    ResponseProperties = MakeDocument(apiDescription.ResponseDescription.ResponseType)
                };

                var parameters = apiDescription.ParameterDescriptions.GroupBy(i => i.Source);
                var req = "EMPTY";

                //BODY OR URL
                foreach (var parameter in parameters)
                {
                    //writer.WriteLine("####" + parameter.Key);

                    foreach (var apiParameterDescription in parameter)
                    {
                        if (apiParameterDescription.ParameterDescriptor == null) continue;

                        if (parameter.Key == ApiParameterSource.FromBody)
                        {
                            var ins = MakeInstance(apiParameterDescription.ParameterDescriptor.ParameterType);
                            apiDoc.RequestBodyJson = JsonHelper.FormatJson(JsonConvert.SerializeObject(ins));
                            apiDoc.RequestProperties = MakeDocument(apiParameterDescription.ParameterDescriptor.ParameterType);
                        }
                        else
                        {
                            apiDoc.UrlProperties = MakeDocument(apiParameterDescription.ParameterDescriptor.ParameterType, apiParameterDescription.Name);
                        }
                    }
                }

                yield return apiDoc;
            }
        }