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/API.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")); config.SetActualResponseType(typeof(List<CourseDTO>), "Courses", "GetCourses"); config.SetActualResponseType(typeof(CourseDetailDTO), "Courses", "GetCourse"); config.SetActualResponseType(typeof(CourseDetailDTO), "Courses", "AddCourse"); config.SetActualResponseType(typeof(CourseDetailDTO), "Courses", "UpdateCourse"); config.SetActualResponseType(typeof(List<StudentDTO>), "Courses", "GetStudents"); config.SetActualResponseType(typeof(List<StudentDTO>), "Courses", "EnroleStudent"); config.SetActualResponseType(typeof(List<StudentDTO>), "Courses", "GetWaitingList"); config.SetActualResponseType(typeof(List<StudentDTO>), "Courses", "AddStudentToWaitingList"); //// 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 XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/DemoProject.API.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"); config.SetSampleRequest(@"POST http://localhost/api/upload HTTP/1.1 Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468 User-Agent: Fiddler Host: localhost Content-Length: 462 ---------------------------acebdf13572468 Content-Disposition: form-data; name=""fieldNameHere""; filename=""TestFile.txt"" Content-Type: text/plain line1 line 2 - namespace DemoProject line3 line4 line 5 - 555555555555555555555555555555555555 line 6 - 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 666666666666 ---------------------------acebdf13572468-- ", new MediaTypeHeaderValue("text/plain"), "Upload", "Post"); //// 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"); config.SetActualResponseType(typeof(IEnumerable<DemoProject.API.Models.MetadataInfo>), "Metadata", "Get"); config.SetActualResponseType(typeof(DemoProject.API.Models.MetadataInfo), "Metadata", "Get", "id"); config.SetActualResponseType(typeof(IEnumerable<DemoProject.API.Models.MetadataInfo>), "Upload", "Post"); }
public void SetActualResponseType_WithParameters() { HttpConfiguration config = new HttpConfiguration(); config.SetActualResponseType(typeof(int), "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.Response, actualType.Key.SampleDirection); Assert.NotEmpty(actualType.Key.ParameterNames); Assert.Equal("id", actualType.Key.ParameterNames.First()); Assert.Equal(typeof(int), actualType.Value); }
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), "{'status':'Succeeded','result':[{'localUrl':'http://localhost/ImagesDownloader/Images/ximnobo2.vqo/c9aef841-7cd2-47e3-be25-436c091101c5.gif','remoteUrl':'https://cdn0.vox-cdn.com/images/verge/default-avatar.v9899025.gif','width':0,'height':0,'size':2926,'contentType':'image/gif'}]}"}, {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"), "Jobs", "Get"); config.SetSampleRequest("{'value': 'http://www.theverge.com'}}", new MediaTypeHeaderValue("application/json"), "Jobs", "Post"); //// 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), "Jobs", "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), "Jobs", "GetById"); }