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>
  • 相关阅读:
    分层图最短路(DP思想) BZOJ2662 [BeiJing wc2012]冻结
    动态规划 BZOJ1925 地精部落
    线性DP SPOJ Mobile Service
    线性DP codevs2185 最长公共上升子序列
    数位DP POJ3208 Apocalypse Someday
    线性DP POJ3666 Making the Grade
    杨氏矩阵 线性DP? POJ2279 Mr.Young's Picture Permutations
    tarjan强连通分量 洛谷P1262 间谍网络
    树链剖分 BZOJ3589 动态树
    二分图 BZOJ4554 [Tjoi2016&Heoi2016]游戏
  • 原文地址:https://www.cnblogs.com/fenger-VIP/p/13614694.html
Copyright © 2011-2022 走看看