2、建立第一个WebApi项目

  1. 打开VS,下面以C#为例,选择ASP.NET Web

  1. 有一下模板,假如选择“Web API”,发现底会勾选两个,连MVC也勾选上。
  2.  假如用这个模板,会生成很多代码,并强制使用MVC,为了学习更加清楚WebAPI每个模块的功能,这里新建一个Empty空的WebApi

  1. 确定生成简单模板

  1. 新建一个Person控制器。这里根据实际业务需求新建。为了演示用,这里先用Person 人类来做。

  1. 在这个Person类下新建三个函数
    1. 第一个没有任何参数
    2. 第二个有个整型参数
    3. 第三个有个字符串参数

public string[] Get()

 {

     return new string[] { "huang", "hai", "nihao" };

 }

 public string Get(int id)

 {

     return "haha" + id;

 }

 public int Get(string name)

 {

     return name.Length;

 }

  1. 运行此程序,它会用浏览器打开
    1. 运行

    1. 发现打开出现错误,因为路由没有配置好

    1. 打开App_Start文件夹下的WebApiConfig.cs来查看路由,路由方式是api/{controller}/{id}

api表示地址后面多加一个api

{controller}表示这里填入新建控制器的名称,即5(b)中输入的名称

{id}表示参数

    1. 在再浏览器中按以上格式输入:发现调用的是第一个函数,因为这个地址中没有输入任何参数,根据函数的重载原理,它自动会调用第一个无参数的函数

http://localhost:18123/api/Person

    1. 浏览器中输入:发现调用的是第二个函数,因为输入参数为id=1

http://localhost:18123/api/Person?id=1

    1.  浏览器中输入:发现调用的是第三个函数,因为输入参数为nane=hhik

http://localhost:18123/api/Person?nane=hhik

  1. 上面三个函数体都是同步执行的,可以声明异步执行的函数。格式如下:

        public async Task<string> GetBaidu(int age)

        {

            HttpClient hc = new HttpClient();

            string txt = await hc.GetStringAsync("https://www.baidu.com/");

            return txt;

        }

  1. 上面的函数返回是一个简单的数据类型,也可以返回一个对象 ,以下例子
  • 返回对象
  1. 新建一个mPerson类,新建类一般在Models文件夹中

  1. 新建函数让其返回对象

        public mPerson Get(double kk)

        {

            mPerson P1 = new mPerson();

            P1.Id =8;

            P1.Name = "huang";

            return P1;

        }

  1. 访问地址:http://localhost:18123/api/Person?kk=5
  2. 结果:

以上都是在浏览器中访问的,但实际项目中不可能在浏览器访问,而是在其他项目中访问。

  • 调用总结
  1. WebApi中调用跟函数名称没关系,主要根据参数名称来判断,所以函数名称不可以一样(出来用Get等特殊关键字来做函数名),参数名称以及参数个数是也不可以一样。
  2. 调用时,只需要写参数名称,不需要写函数名称

  1. 当参数名一样时,编译器不会报错,调用时会报错:

  1. 函数名一样,编译器直接报错

三、在其他项目中访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值