LOADING

分布式技术webapi路由追加html、aspx、shtml适用于对接安卓、IOS

    首先是这样,在对接安卓和IOS或者是第三方调用的接口,我需要在服务端返回一个带.html/.aspx这样后缀的接口。

    例子如下图:http://localhost:64131/api/UsersInfo/GetAllUsersInfo.html

 

     分布式技术webapi路由追加html、aspx、shtml适用于对接安卓、IOS

    当然,我们用的肯定是webapi 来做这件事情。不需要建aspx/html/do/shtml…这样的文件,只需要配置一下路由就可以了。

    首先要打开:WebApiConfig 这个配置文件。需要将

    

 routeTemplate: "api/{controller}/{action}/{Id}",

修改成:

如果要想是aspx,那么就修改成

 routeTemplate: "api/{controller}/{action}.aspx",

如果要想是html,那么就修改成

 routeTemplate: "api/{controller}/{action}.html",

修改完成代码如下:    

 public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}.html",
                defaults: new { id = RouteParameter.Optional }
            );

            // 取消注释下面的代码行可对具有 IQueryable 或 IQueryable<T> 返回类型的操作启用查询支持。
            // 若要避免处理意外查询或恶意查询,请使用 QueryableAttribute 上的验证设置来验证传入查询。
            // 有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=279712//config.EnableQuerySupport();

            // 若要在应用程序中禁用跟踪,请注释掉或删除以下代码行
            // 有关详细信息,请参阅: http://www.asp.net/web-api
            config.EnableSystemDiagnosticsTracing();
            //将webapi中的XmlFormatter 移除,默认就是以JsonFormatter作为其传输格式
            config.Formatters.Remove(config.Formatters.XmlFormatter);
        }
    }

 

webapi Controller代码:

 

namespace WebApiApp.Controllers
{
    public class UsersInfoController : ApiController
    {

        UsersInfo[] usersInfos = new UsersInfo[]
        {
            new UsersInfo{Id=1,Name="张三", Age=100, Email="abcd@126.com", Adress="北京"},
            new UsersInfo{Id=2,Name="李四", Age=222, Email="abcd@126.com", Adress="北京"},
            new UsersInfo{Id=3,Name="王五", Age=333, Email="abcd@126.com", Adress="北京"},
            new UsersInfo{Id=4,Name="侯六", Age=444, Email="abcd@126.com", Adress="北京"}
        };

        /// <summary>
        /// /api/Contact
        /// </summary>
        /// <returns></returns>
        public IEnumerable<UsersInfo> GetListAll()
        {
            return usersInfos;
        }

        /// <summary>
        /// 获取全部数据
        /// </summary>
        /// <returns></returns>
        public ReturnJson GetAllUsersInfo()
        {
            return new ReturnJson { data = usersInfos };
        }

        /// <summary>
        /// 根据Id 获取数据
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public UsersInfo GetUsersInfoById(int Id,[FromBody]string value )
        {
            var usersInfo = usersInfos.FirstOrDefault((u) => u.Id == Id);
            return usersInfo;
        }

        public class ReturnJson
        {
            public int count { get; set; }
            public object data { get; set; }
            public string msg { get; set; }
        }
    }
}

View Code原文链接:https://www.cnblogs.com/foreverfendou/p/7485753.html
本文来源 爱码网,其版权均为 原网址 所有 与本站无关,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源。

© 版权声明

相关文章