Пример #1
0
        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")));

            //// 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");
        }
Пример #3
0
        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 SetSampleRequest_WithParameters()
 {
     HttpConfiguration config = new HttpConfiguration();
     TextSample sample = new TextSample("test");
     config.SetSampleRequest(sample, new MediaTypeHeaderValue("application/json"), "values", "post", "id", "name");
     object sampleGeneratorObj;
     config.Properties.TryGetValue(typeof(HelpPageSampleGenerator), out sampleGeneratorObj);
     HelpPageSampleGenerator sampleGenerator = Assert.IsType<HelpPageSampleGenerator>(sampleGeneratorObj);
     Assert.NotEmpty(sampleGenerator.ActionSamples);
     var actionSample = sampleGenerator.ActionSamples.First();
     Assert.Equal("values", actionSample.Key.ControllerName);
     Assert.Equal("post", actionSample.Key.ActionName);
     Assert.Equal(new MediaTypeHeaderValue("application/json"), actionSample.Key.MediaType);
     Assert.Equal(SampleDirection.Request, actionSample.Key.SampleDirection);
     Assert.Equal(2, actionSample.Key.ParameterNames.Count);
     Assert.True(actionSample.Key.ParameterNames.SetEquals(new[] { "id", "name" }));
     Assert.Same(sample, actionSample.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")));
            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");
        }