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); } }
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; } }