public static void Register(HttpConfiguration config) { // Uncomment the following to use the documentation from XML documentation file. config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml"))); // Uncomment the following to use "sample string" as the sample for all actions that have string as the body parameter or return type. // Also, the string arrays will be used for IEnumerable<string>. The sample objects will be serialized into different media type // formats by the available formatters. config.SetSampleObjects(new Dictionary<Type, object> { {typeof (string), "sample string"}, {typeof (IEnumerable<string>), new[] {"sample 1", "sample 2"}} }); // Uncomment the following to use "[0]=foo&[1]=bar" directly as the sample for all actions that support form URL encoded format // and have IEnumerable<string> as the body parameter or return type. config.SetSampleForType("[0]=foo&[1]=bar", new MediaTypeHeaderValue("application/x-www-form-urlencoded"), typeof (IEnumerable<string>)); // Uncomment the following to use "1234" directly as the request sample for media type "text/plain" on the controller named "Values" // and action named "Put". config.SetSampleRequest("1234", new MediaTypeHeaderValue("text/plain"), "Values", "Put"); // Uncomment the following to use the image on "../images/aspNetHome.png" directly as the response sample for media type "image/png" // on the controller named "Values" and action named "Get" with parameter "id". config.SetSampleResponse(new ImageSample("../images/aspNetHome.png"), new MediaTypeHeaderValue("image/png"), "Values", "Get", "id"); // Uncomment the following to correct the sample request when the action expects an HttpRequestMessage with ObjectContent<string>. // The sample will be generated as if the controller named "Values" and action named "Get" were having string as the body parameter. config.SetActualRequestType(typeof (string), "Values", "Get"); // Uncomment the following to correct the sample response when the action returns an HttpResponseMessage with ObjectContent<string>. // The sample will be generated as if the controller named "Values" and action named "Post" were returning a string. config.SetActualResponseType(typeof (string), "Values", "Post"); }
public static void Register(HttpConfiguration config) { //// Uncomment the following to use the documentation from XML documentation file. //config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml"))); config.SetDocumentationProvider(new MultiXmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml"), HttpContext.Current.Server.MapPath("~/App_Data/WebAPI2PostMan.WebModel.XmlDocument.xml"))); //// Uncomment the following to use "sample string" as the sample for all actions that have string as the body parameter or return type. //// Also, the string arrays will be used for IEnumerable<string>. The sample objects will be serialized into different media type //// formats by the available formatters. config.SetSampleObjects(new Dictionary<Type, object> { {typeof(string), "sample string"}, {typeof(IEnumerable<string>), new string[]{"sample 1", "sample 2"}} }); // Extend the following to provide factories for types not handled automatically (those lacking parameterless // constructors) or for which you prefer to use non-default property values. Line below provides a fallback // since automatic handling will fail and GeneratePageResult handles only a single type. #if Handle_PageResultOfT config.GetHelpPageSampleGenerator().SampleObjectFactories.Add(GeneratePageResult); #endif // Extend the following to use a preset object directly as the sample for all actions that support a media // type, regardless of the body parameter or return type. The lines below avoid display of binary content. // The BsonMediaTypeFormatter (if available) is not used to serialize the TextSample object. config.SetSampleForMediaType( new TextSample("Binary JSON content. See http://bsonspec.org for details."), new MediaTypeHeaderValue("application/bson")); //// Uncomment the following to use "[0]=foo&[1]=bar" directly as the sample for all actions that support form URL encoded format //// and have IEnumerable<string> as the body parameter or return type. config.SetSampleForType("[0]=foo&[1]=bar", new MediaTypeHeaderValue("application/x-www-form-urlencoded"), typeof(IEnumerable<string>)); //// Uncomment the following to use "1234" directly as the request sample for media type "text/plain" on the controller named "Values" //// and action named "Put". config.SetSampleRequest("1234", new MediaTypeHeaderValue("text/plain"), "Values", "Put"); //// Uncomment the following to use the image on "../images/aspNetHome.png" directly as the response sample for media type "image/png" //// on the controller named "Values" and action named "Get" with parameter "id". config.SetSampleResponse(new ImageSample("../images/aspNetHome.png"), new MediaTypeHeaderValue("image/png"), "Values", "Get", "id"); //// Uncomment the following to correct the sample request when the action expects an HttpRequestMessage with ObjectContent<string>. //// The sample will be generated as if the controller named "Values" and action named "Get" were having string as the body parameter. config.SetActualRequestType(typeof(string), "Values", "Get"); //// Uncomment the following to correct the sample response when the action returns an HttpResponseMessage with ObjectContent<string>. //// The sample will be generated as if the controller named "Values" and action named "Post" were returning a string. config.SetActualResponseType(typeof(string), "Values", "Post"); }
public void SetActualRequestType_WithParameters() { HttpConfiguration config = new HttpConfiguration(); config.SetActualRequestType(typeof(string), "c", "a", "id"); object sampleGeneratorObj; config.Properties.TryGetValue(typeof(HelpPageSampleGenerator), out sampleGeneratorObj); HelpPageSampleGenerator sampleGenerator = Assert.IsType<HelpPageSampleGenerator>(sampleGeneratorObj); Assert.NotEmpty(sampleGenerator.ActualHttpMessageTypes); var actualType = sampleGenerator.ActualHttpMessageTypes.First(); Assert.Equal("c", actualType.Key.ControllerName); Assert.Equal("a", actualType.Key.ActionName); Assert.Null(actualType.Key.MediaType); Assert.Equal(SampleDirection.Request, actualType.Key.SampleDirection); Assert.NotEmpty(actualType.Key.ParameterNames); Assert.Equal("id", actualType.Key.ParameterNames.First()); Assert.Equal(typeof(string), actualType.Value); }