API接口

什么是 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主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。

Picture20

 

为什么要用 Web API

Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。

Picture2

 

当你遇到以下这些情况的时候,就可以考虑使用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
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自www.cnblogs.com/meteorll/p/10000641.html