什么是 Web API
官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。
ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.
Web API在ASP.NET完整框架中地位如下图,与SignalR一起同为构建Service的框架。Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。
为什么要用 Web API
Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。
当你遇到以下这些情况的时候,就可以考虑使用Web API了。
- 需要Web Service但是不需要SOAP
- 需要在已有的WCF服务基础上建立non-soap-based http服务
- 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
- 发布的服务可能会被带宽受限的设备访问
- 希望使用开源框架,关键时候可以自己调试或者自定义一下框架
功能简介
Web API的主要功能
1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。
2. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。
3. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
4. 原生支持OData。
5. 支持Self-host或者IIS host。
6. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
是什么
Web Api,网络应用程序接口。它包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务的能力,利用这些能力可以进行开发出强大功能的web应用。简单来说,就是一个接口,比如说,我们要做前后端分离的项目,前端和后端通过url连接,但是我们如何知道后端的数据是否通了,返回的数据是否正确,于是我们通过这个接口知道。
相似的技术
postman和swagger。
使用步骤
1.创建web api项目(本例使用vs2015)
文件--新建--项目--ASP.NET Web应用程序
2.选择模板中的Web API模板
[RoutePrefix("api/ghost")]
创建web api项目完成。
3.代码编写
B、D层以前怎么写现在就怎么写,controller需要添加一些特殊的代码。
步骤一:删除using System.Web.Mvc; 添加using System.Web.Http;
步骤二:给类起个名,路由中要找到这个类,所以我要先给这个类起个名字:
[RoutePrefix("api/ghost")]
步骤三:controller继承ApiController
步骤四:给方法起个名字,原理同给类起个名字一样,路由找到类后去找方法:
[HttpGet]
[Route("goodsDetail")]
完整的代码参考:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using Model;
using ViewModel;
using Services;
namespace WebApi.Controllers
{
[RoutePrefix("api/ghost")]
public class ghostController : ApiController
{
List<ghostVM> goods = new List<ghostVM>();
ghostService goodService = new ghostService();
[HttpGet]
[Route("goodsDetail")]
public List<ghostVM> goodsDetail()
{
string id = "1";
goods = goodService.goodsDetail(id);
if (goods == null)
{
return null;
}
else
{
return goods;
}
}
}
}
4.测试,这时要安装WebApiTestClient。
任务栏工具--NuGet包管理器--管理解决方案的NuGet程序包--浏览搜索WebApiTestClient--安装WebApi
5.在WebApi下的Areas/HelpPage/Views/Help/Api.cshtml的最后添加以下代码:
@Html.DisplayForModel("TestClientDialogs")
@section Scripts{
<link href='~/Areas/HelpPage/HelpPage.css' rel='stylesheet' />
@Html.DisplayForModel("TestClientReferences")
}
6.运行项目,在网页上点击API,点击对应的类名/方法名,点击Test API,就可以看到是否连接数据库正确了。
---------------------
作者:魏恩君--Caroline
来源:CSDN
原文:https://blog.csdn.net/weienjun/article/details/80027400
版权声明:本文为博主原创文章,转载请附上博文链接!