Esempio n. 1
0
        private void BuildRequestInformation(ApiDescriptionDetailModel apiDescriptionDetailModel)
        {
            IDictionary <string, string> parameterDescriptions = new Dictionary <string, string>();
            var controllerActionDescriptor = apiDescriptionDetailModel.ApiDescription.ActionDescriptor as ControllerActionDescriptor;

            if (controllerActionDescriptor != null)
            {
                parameterDescriptions = _documentationProvider.GetParameterDocumentation(controllerActionDescriptor.MethodInfo);
            }

            foreach (var parameter in apiDescriptionDetailModel.ApiDescription.ParameterDescriptions)
            {
                if (parameter.Source == BindingSource.Body)
                {
                    apiDescriptionDetailModel.RequestInformation.BodyParameterDescriptions.Add(CreateApiParameterDescriptionModel(parameter, parameterDescriptions));
                    apiDescriptionDetailModel.RequestInformation.SupportedRequestSamples.Add("application/json", _objectGenerator.GenerateObject(parameter.Type));
                }
                else if (parameter.Source == BindingSource.Path)
                {
                    apiDescriptionDetailModel.RequestInformation.RouteParameterDescriptions.Add(CreateApiParameterDescriptionModel(parameter, parameterDescriptions));
                }
                else if (parameter.Source == BindingSource.Query)
                {
                    apiDescriptionDetailModel.RequestInformation.QueryParameterDescriptions.Add(CreateApiParameterDescriptionModel(parameter, parameterDescriptions));
                }
            }
        }
Esempio n. 2
0
 private void BuildResponseInformation(ApiDescriptionDetailModel apiDescriptionDetailModel)
 {
     foreach (var supportedResponseType in apiDescriptionDetailModel.ApiDescription.SupportedResponseTypes)
     {
         apiDescriptionDetailModel.ResponseInformation.SupportedResponseTypes.Add(supportedResponseType);
         if (supportedResponseType.Type != null)
         {
             var modelMetadataWrapper = _modelMetadataWrapperProvider.GetOrCreate(supportedResponseType.Type);
             apiDescriptionDetailModel.ResponseInformation.SupportedResponseTypeMetadatas.Add(modelMetadataWrapper);
             apiDescriptionDetailModel.ResponseInformation.SupportedResponseSamples.Add("application/json", _objectGenerator.GenerateObject(supportedResponseType.Type));
         }
     }
 }
Esempio n. 3
0
        private ApiDescriptionDetailModel CreateApiDescriptionDetailModel(ApiDescriptionModel apiDescriptionModel)
        {
            var apiDescriptionDetailModel = new ApiDescriptionDetailModel
            {
                Id             = apiDescriptionModel.Id,
                Description    = apiDescriptionModel.Description,
                GroupName      = apiDescriptionModel.GroupName,
                HttpMethod     = apiDescriptionModel.HttpMethod,
                RelativePath   = apiDescriptionModel.RelativePath,
                IsDeprecated   = apiDescriptionModel.IsDeprecated,
                ApiDescription = apiDescriptionModel.ApiDescription
            };

            BuildRequestInformation(apiDescriptionDetailModel);
            BuildResponseInformation(apiDescriptionDetailModel);
            return(apiDescriptionDetailModel);
        }
Esempio n. 4
0
 public bool TryGetValue(string key, out ApiDescriptionDetailModel value) => _apiDescriptionDetailModelCache.TryGetValue(key, out value);