问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.net web api实例应该如何写

发布网友 发布时间:2022-04-22 02:29

我来回答

1个回答

热心网友 时间:2022-04-13 08:55

由于我机器装的是win8企业版操作系统,VS版本是2012,因此我们选择使用VS自带的MVC4模版中的Web API来创建一个项目。

点击确定后,VS会自动为我们创建一个完整的可运行的ASP.NET Web API的项目。
从项目的目录结构可以看出,ASP.NET Web API与ASP.NET MVC项目的结构几乎一致。我们删除为我们默认创建并打开的ValuesController文件(示例性文件,可以参考)。
既然要打造一个IP地址查询服务接口,为了跟上文的服务形式一致,我们还是使用GET请求方式的服务,不过我们这次使用MVC中的Web API来实现。
首先在Models文件夹中建立一个Address模型类。

?

1
2
3
4
5
6
7
8
9

namespace MvcWebApi.Models
{
public class Address
{
public string IPAddress { get; set; }
public string Province { get; set; }
public string City { get; set; }
}
}

接着我们在Controllers文件夹下建立一个IPAddressController控制器,需要注意的是,这个IPAddressController一定要继承自ApiController类,这样服务才能暴露出来。

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

namespace MvcWebApi.Controllers
{
public class IPAddressController : ApiController
{
private static IList addresses = new List
{
new Address(){ IPAddress="1.91.38.31", Province="北京市", City="北京市" },
new Address(){ IPAddress = "210.75.225.254", Province = "上海市", City = "上海市" },
};

public IEnumerable GetIPAddresses()
{
return addresses;
}

public Address GetIPAddressByIP(string IP)
{
return addresses.FirstOrDefault(x => x.IPAddress == IP);
}

}
}</address></address></address>

只要做上面两步就可以运行这个项目了,我们按Ctrl+F5运行整个项目,出现了如下的页面。

我们点击右上角的API链接。

可以看到我们定义的Web API的接口的使用方法以及说明。
既然是服务,能够被其它程序调用就需要一个持续保障它运行的环境,我们可以将这个写好的Web API的项目发布到IIS当中。
我们可以使用VS自带的发布功能进行发布,并映射到IIS应用程序目录当中。

我们点击IIS右侧的浏览,看看服务有没有能够正常运行。

我们按照文档的提示,我们在地址栏输入http://192.168.0.2/webapi/api/ipaddress。

可以看到,我们收到了Web API定义的服务提供的数据。同样的我们试一下另外一个接口方法。

OK,这样就好了。
但是如果我们需要返回JSON格式怎么办呢?有个简便的方法,在Global.asax.cs文件中,添加一个方法即可。

关于这段代码的原因,可以参考:http://blog.miniasp.com/post/2012/10/12/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx,这里不重复。
我们运行这个项目后,重复发布。
当我们再次在浏览器中运行时,就可以看到默认返回的是JSON格式了(IE默认就是JSON)。

ASP.NET Web API就开发好了,至于在C#程序中怎么调用,可以参考我上篇博客中的代码。如果要在页面中调用,可以通过jQuery等JS库请求URL即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
是选诺顿杀毒软件好还是NOD32好? 诺顿好还是NOD32好???请高手指点 诺顿安全软件和ESET NOD32安全软件相比,谁的防护.杀毒更强,功能更多... 诺顿和NOD32这两个杀毒软件哪个比较好? 什么是土地二次抵押 "口似含莲,乾姜之手"是什么意思? 乾姜的意思是什么 都说Pinnacle Food公司各方面做的好,有对这家了解的吗 空调蒸发箱多久清洗一次 空调蒸发箱需要清洗吗 苹果xr流量设置 杭州到嘉兴濮院有没有直达火车 asp.net mvc是什么? 从杭州四季青服装市场到桐乡濮院羊毛衫市场怎么坐车 有没有ASP.net Web API的学习视频 从杭州老四季青到濮院羊毛衫市场有直达车吗 asp.net在web服务器注册问题 杭州萧山机场到濮大巴车票多少? 如何设置 web服务扩展 asp.net v3.5 杭州南站下车到桐乡濮院怎样坐车 asp.net 读写配置文件Web.Config 杭州萧山机场到嘉兴濮院羊毛衫市场怎么坐车? 杭州桐庐到桐乡濮院怎么坐车 运行ASP。NET的时候出现WEB错误 到杭州下了火车后怎么去濮院! 杭州四季青到濮院包车多少钱 杭走南站和杭州东站哪个离濮院近、怎么走? 请问从&nbsp;杭州萧山机场&nbsp;到&nbsp;桐乡濮院&... 烤脆皮五花肉的做法 烤箱 杭州去濮院在哪坐车 从杭州萧山机场去濮院怎么坐车 杭州萧山国际机场到嘉兴市桐乡市濮院镇永联村联越... 如何在aspnet+c#的web页面中弹出对话框? 调试ASP.NET的时候老弹出无法用Web进行调试 从萧山机场去濮院羊毛衫市场怎么走 ASP.NET框架中,服务器控件是为配合Web表单工作而... 杭州火车站到桐乡毛织市场怎么走 怎么进行ASPNET团队开发 杭州到桐乡要几个小时? 我在IIS搭建asp.net的时候,不小心删掉了web.confi... 萧山机场到濮院镇工贸大道396号怎么走 C#&&asp.net加解密web.config某个节点内所有值方法 ASP.NET工程为何打不开?出现&quot;本地WEB服务器没有安... aspnet_wp.exe 进程 IIS 更改 ASPNET 用户 Visual Studio二次打开后找不到ASP.NET Web开发项目 良精.net版本web.config设置问题 tf家族里有哪些成员? tf家族成员有哪些? tf家族三代全部成员有哪些? tf家族的全部成员有哪些人?