webapi简介及参数绑定

2021-01-24 18:13

阅读:472

标签:ret   返回结果   请求   mod   http协议   接收   rest   strong   pre   

介绍:
WebAPI用来开发系统间接口的技术,基于HTTP协议,返回默认是json格式。比wcf简单 更通用,更轻量级,更省流量(json格式);
WebAPI尽可能复用MVC路由、ModelBinder、Filter等知识,但只是模仿
webapi默认路由机制是通过http请求类型匹配Action(REST风格),而MVC的默认路由机制是通过url匹配Action。
可以修改webapi默认路由机制,通过url匹配action

Restfull风格:
就是基于谓词语义进行通讯协议的设计(利用get、post、put、delete请求接口,并通过http状态码返回结果,但是太多不好用)

webapi参数绑定:
get请求:
实体参数,实体参数需要加[FromUri]

post请求:
单个参数,需要加[FromBody],key需要改成空字符串,WTF?
实体参数,不需要加[FromBody]
实体参数也可以使用JObject参数接收
可以传json格式字符串,自动绑定实体(请求类型需要设置为json格式 contentType:json)

 

    public class ValuesController : ApiController
    {
        [HttpGet]
        public string Index([FromUri]User user)
        {
            return "index1";
        }
        [HttpGet]
        public string Index33(string name, int id)
        {
            return "index33";
        }
        [HttpGet]
        public string Index2(int id)
        {
            return "index2";
        }
        [HttpPost]
        public string PIndex1(int id)
        {
            return "pindex1";
        }
        [HttpPost]
        public string PIndex2([FromBody]int id)
        {
            return "pindex2";
        }
        [HttpPost]
        public string PIndex3(User user)
        {
            return "pindex3";
        }
        [HttpPost]
        public string PIndex5(JObject jobj)
        {
           var user1 = jobj["UserInfo"].ToObject();
            var dog1 = jobj["DogInfo"].ToObject();
            return "pindex5";
        }[HttpPost]
        public string PIndex6(JObject jobj)
        {
           var usider1 = jobj["id"].ToObjectint>();
            var name = jobj["name"].ToObjectstring>();
            return "pindex6";
        }
    }
    public class User
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    public class Dog
    {
        public string DogName { get; set; }
    }

webapi简介及参数绑定

标签:ret   返回结果   请求   mod   http协议   接收   rest   strong   pre   

原文地址:https://www.cnblogs.com/fanfan-90/p/12041806.html

上一篇:C#操作Outlook

下一篇:webapi序列化控制


评论


亲,登录后才可以留言!