Web API,一般指基于HTTP协议的编程接口,接口一般定义为HTTP或HTTPS:请求方法、请求路径、参数、响应数据格式、响应HTTP Code等。至于HTTP Server,可以用Java、.Net、Nodejs等各种框架实现,Http Server属于Web API的实现,有时候也会指Web Service接口
1. Api是什么?
API(Application Programming Interface,应用程序编程接口)是一些预先定义的接口,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
操作系统想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库),随操作系统一起发布,并配上说明文档,程序员只需要简单地调用这些函数就可以完成复杂的工作,让编程变得简单有趣。这些封装好的函数,就叫做API(Application Programming Interface),即应用程序编程接口。
说的更加通俗一点,别人写好的代码,或者编译好的程序,提供给你使用, 就叫做API。你使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了某个API。
2. WebApi是什么?
Web: 网页。
Api: 接口,应用程序编程接口,开发人员封装的属性和方法。
WebAPI: 提供给不同客户端(跨平台客户端)调用网页的应用程序编程接口。
Web API,一般指基于HTTP协议的编程接口,接口一般定义为HTTP或HTTPS:请求方法、请求路径、参数、响应数据格式、响应HTTP Code等。至于HTTP Server,可以用Java、.Net、Nodejs等各种框架实现,Http Server属于Web API的实现,有时候也会指Web Service接口(目前越来越少见)。
3. 为什么要用WebAPI?
Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务,例如:URI/Request/Response Header/Caching/Versioning/Content Format,因此就省掉很多配置。
![CSFramework.WebApi服务端开发框架应用](http://www.csframework.com/images/webapi%E5%BA%94%E7%94%A8.jpg)
4. WebAPI功能简介
支持基于Http Verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。
请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept Header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。
请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。WebApi服务器支持Self-Hosting、IIS Hosting以及Windows Service Hosting三种承载(宿主)方式。
支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
5. WebAPI接口搭建三种承载(Hosting)方式
一、C# ASP.NET WebApi服务器搭建详解 - IIS服务承载(IIS Hosting IIS宿主)
二、C# ASP.NET WebApi服务器搭建详解 - 自承载(Self Hosting)
三、C# ASP.NET WebApi服务器搭建详解 - Win服务承载(Windows Service Hosting宿主)
6. WebAPI服务器部署,Self Hosting + IIS服务 + Win服务
6.1 部署Self Hosting WebApi服务
将CSFramework.WebAPI.Demo.SelfHosting项目设为启动项目,直接运行即可。
CSFramework.WebAPI.Demo.SelfHosting项目是个可以直接运行的控制台应用程序。
6.2 部署IIS承载的WebApi服务
在CSFramework.WebAPI.Demo.IISHosting项目点右键【发布】,弹出发布Web对话框,Publish method 选择【File System】文件系统。
发布文件到一个目录,将目录文件部署到IIS服务器,参考下文。
参考:VS发布及IIS服务器部署WebApi后台开发框架(原)
6.3 部署Windows服务承载的WebApi服务器
在debug目录下建立一个用于安装win服务的批处理命令程序,如:_安装服务.bat,以管理员身份运行即可安装。
_安装服务.bat
dos command:
path c:\windows\system32;
path %SystemRoot%\Microsoft.NET\Framework\v4.0.30319;
echo "开始卸载服务***************************"
installutil.exe /u %~d0%~p0CSFramework.WebAPI.Demo.WinServiceHosting.exe
echo "开始安装服务**************************"
installutil.exe %~d0%~p0CSFramework.WebAPI.Demo.WinServiceHosting.exe
echo "设置服务自动启动*********************"
sc config CSFramework.WebAPI.Demo.WinServiceHosting start= auto
Net Start CSFramework.WebAPI.Demo.WinServiceHosting
pause;
安装完成,打开Windows服务管理器,查看服务状态。
参考:C# ASP.NET WebApi服务器搭建详解 - Win服务承载(Windows Service Hosting宿主)
.NET WebApi开发框架|MVC框架|后端框架|服务端框架-标准版V1.0
![适用开发](http://www.csframework.com/images/header_system.png)
适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
![运行平台](http://www.csframework.com/images/header_platform.png)
运行平台:Windows + .NET Framework 4.5
![开发工具](http://www.csframework.com/images/header_vs.png)
开发工具:Visual Studio 2015+,C#语言
![数据库](http://www.csframework.com/images/header_db.png)
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)
7. CSFramework.WebAPI服务端开发框架专业版V1.0 《体系架构图》
CSFramework.WebApi 封装多个通用功能,为搭建Web服务端软件提供强大的技术支持。
![](http://www.csframework.com/images/info16-1.png)
客户端请求以命令形式传递到服务端的API接口,命令也就是请求的数据包,包含有请求编号、数据签名以及提交的业务数据。服务端接收到请求,首先要进行数据格式分析以及安全检查,比如数据签名、用户令牌或用户账号信息等。检查通过后,系统自动将请求传递到命令处理处理程序,系统将拒绝非法请求,抛出异常或返回错误回应信息给客户端。
![](http://www.csframework.com/images/info16-1.png)
命令处理层即业务逻辑层,主要负责数据校验和提取业务数据,将
Request的数据(JSON或XML)文本内容转换为实体对象,最后传递到数据访问层提交到数据库。
数据访问层是整个逻辑处理的最后一个流程,负责将数据模型持久化到数据库。数据层使用开发框架内置的数据更新机制,根据表结构模型自动生成SQL脚本,无论是提交单条或批量数据,无需手工编写SQL脚本,系统自动实现数据的持久化。框架支持其他数据模型,如Entity Framework等。
8. CSFramework.WebAPI服务端开发框架成功案例