zoukankan      html  css  js  c++  java
  • 创建一个简单的API项目(支持跨域)

    创建三个项目,空项目即可。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace BFKR.Date
    {
        public class Contact
        {
            /// <summary>
            /// ID
            /// </summary>
            public string ID { get; set; }
            /// <summary>
            /// 姓名
            /// </summary>
            public string Name { get; set; }
            /// <summary>
            /// 联系电话
            /// </summary>
            public string PhoneNo { get; set; }
            /// <summary>
            /// 电子邮箱
            /// </summary>
            public string EmailAddress { get; set; }
            /// <summary>
            /// 联系地址
            /// </summary>
            public string Address { get; set; }
            /// <summary>
            /// 资料
            /// </summary>
            public List<Information> lisInfo { get; set; }
        }
    
        public class Information
        {
            public string Education { get; set; }
        }
    }

    配置webapi路由、跨域支持

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Http.Cors;
    
    namespace BFKR.API
    {
        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                //跨域配置
                config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
    
                //webApi路由
                config.MapHttpAttributeRoutes();
    
                //设置webapi路由规则
                //config.Routes.MapHttpRoute(
                //    name: "AreaApi",
                //    routeTemplate: "api/{area}/{controller}/{action}/{id}",
                //    defaults: new { id = RouteParameter.Optional }
                //);
                //config.Routes.MapHttpRoute(
                //    name: "WebApi",
                //    routeTemplate: "api/{controller}/{action}/{id}",
                //    defaults: new { id = RouteParameter.Optional }
                //);
    
    
                config.Routes.MapHttpRoute(
                   name: "DefaultApi",
                   routeTemplate: "api/{controller}/{id}",
                   defaults: new { id = RouteParameter.Optional }
               );
    
    
                //移除xml返回格式数据
                GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
    
                //配置返回的时间类型数据格式  
                GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
                    new Newtonsoft.Json.Converters.IsoDateTimeConverter()
                    {
                        DateTimeFormat = "yyyy-MM-dd HH:mm:ss"
                    }
                );
            }
        }
    }

    配置Global

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Mvc;
    using System.Web.Routing;
    using System.Web.Security;
    using System.Web.SessionState;
    
    namespace BFKR.API
    {
        public class Global : System.Web.HttpApplication
        {
    
            protected void Application_Start(object sender, EventArgs e)
            {
                AreaRegistration.RegisterAllAreas();
    
                GlobalConfiguration.Configure(WebApiConfig.Register);
                //FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                //RouteConfig.RegisterRoutes(RouteTable.Routes);
            }
    
            protected void Session_Start(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_AuthenticateRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_Error(object sender, EventArgs e)
            {
    
            }
    
            protected void Session_End(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_End(object sender, EventArgs e)
            {
    
            }
        }
    }

    编写API

    using BFKR.Date;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    
    namespace BFKR.API.Controller
    {
        public class ContactsController : ApiController
        {
            static List<Contact> contacts;
    
            static ContactsController()
            {
                contacts = new List<Contact>() {
                    new Contact { ID = "001", Name = "张三", PhoneNo = "15811100056", EmailAddress = "zhangsanemail@163.com", Address = "北京市", lisInfo = new List<Information>() { new Information { Education = "小学" }, new Information { Education = "中学" } } },
                    new Contact { ID = "002", Name = "李四", PhoneNo = "0474-577466", EmailAddress = "lisiemail@163.com", Address = "内蒙古", lisInfo = new List<Information>() { new Information { Education = "高中" }, new Information { Education = "大学" } } }
                };
            }
    
            public IEnumerable<Contact> Get(string id = null)
            {
                return from contact in contacts
                       where contact.ID == id || string.IsNullOrEmpty(id)
                       select contact;
            }
    
            public void Post(Contact contact)
            {
                contact.ID = "003";
                contacts.Add(contact);
            }
    
    
            public void Put(Contact contact)
            {
                contacts.Remove(contacts.First(C => C.ID == contact.ID));
                contacts.Add(contact);
            }
    
    
            public void Delete(string id)
            {
                contacts.Remove(contacts.First(C => C.ID == id));
            }
        }
    }

    前段ajax 调用API

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="../Contents/scripts/jquery/jquery-2.1.1.min.js"></script>
    </head>
    <body>
    
    </body>
    </html>
    
    <script type="text/javascript">
    
        $(function () {
            alert(111);
    
            $.ajax({
                url: "https://localhost:44314/api/Contacts",
                type: "GET",
                success: function (data) {
                    alert(data);
                }
            });
    
        });
    
    
    </script>
  • 相关阅读:
    Springboot单元测试(MockBean||SpyBean)
    使用 Mockito 单元测试 – 教程
    spring结合mockito
    Spatis service单元测试: 使用mock mapper的方式
    单元测试Mockito中的Mock和Spy
    强大的Mockito测试框架
    Mockito单测,mock service层的mapper
    Mockito教程
    SetupFactory 制作安装包
    fiddler的一些记录
  • 原文地址:https://www.cnblogs.com/fenger-VIP/p/13614694.html
Copyright © 2011-2022 走看看