Api

是什么?

API(Application Programming Interface,应用程序编程接口)是一些预先定义的接口,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

操作系统想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库),随操作系统一起发布,并配上说明文档,程序员只需要简单地调用这些函数就可以完成复杂的工作,让编程变得简单有趣。这些封装好的函数,就叫做API(Application Programming Interface),即应用程序编程接口。

说的更加通俗一点,别人写好的代码,或者编译好的程序,提供给你使用, 就叫做API。你使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了某个API。

webAPI

是什么?

1、对接各种客户端(浏览器、移动设备)2、构建http服务的框架

为什么要用webAPI?

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

什么时候使用?

  • 需要Web Service但是不需要SOAP
  • 需要在已有的WCF服务基础上建立non-soap-based http服务
  • 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
  • 发布的服务可能会被带宽受限的设备访问
  • 希望使用开源框架,关键时候可以自己调试或者自定义一下框架

功能简介

  1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
  2. 通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。
  3. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。
  4. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
  5. 原生支持OData。
  6. 支持Self-host或者IIS host。
  7. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

WebAPI vs MVC

WebAPI和MVC很类似,他们有哪些不同之处呢?看下图。

详细点说他们的区别。

  • MVC主要用来构建网站,既关心数据也关心页面展示,而Web API只关注数据
  • Web API支持格式协商,客户端可以通过Accept header通知服务器期望的格式
  • Web API支持Self Host,MVC目前不支持
  • Web API通过不同的http verb表达不同的动作(CRUD),MVC则通过Action名字表达动作
  • Web API内建于ASP.NET System.Web.Http命名空间下,MVC位于System.Web.Mvc命名空间下,因此model binding/filter/routing等功能有所不同
  • 最后,Web API非常适合构建移动客户端服务

Web API vs WCF

发布服务在Web API和WCF之间该如何取舍呢?这里提供些简单得判断规则。

  • 如果服务需要支持One Way Messaging/Message Queue/Duplex Communication,选择WCF
  • 如果服务需要在TCP/Named Pipes/UDP (wcf 4.5),选择WCF
  • 如果服务需要在http协议上,并且希望利用http协议的各种功能,选择Web API
  • 如果服务需要被各种客户端(特别是移动客户端)调用,选择Web API

参考地址:

Web API 强势入门指南 - Napoléon - 博客园

https://www.cnblogs.com/guyun/p/4589115.html

WebAPI 入门了解相关推荐

  1. WebApi入门到精通视频课程-夏昊-专题视频课程

    WebApi入门到精通视频课程-4253人已学习 课程介绍         webapi是.net技术体系下分布式开发的首选技术,越来越多的公司开始采用该技术构建自己的系统,本门课程深入浅出的介绍了w ...

  2. WebApi入门第一章(WebApi介绍)

    本文部分内容参考官方文档 1.WebAPI概念介绍 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于 ...

  3. Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。

  4. ASP.NET MVC WebAPI 资源整理

    注:这是收集给公司同事学习的资料,入门级别的. 使用ASP.Net WebAPI构建REST服务(一)--简单的示例 http://blog.csdn.net/mengzhengjie/article ...

  5. ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

    一.区域-麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念-区域(Area). 在项目上右击创建新 ...

  6. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

    http://blog.jobbole.com/85008/ ASP.Net MVC开发基础学习笔记(5):区域.模板页与WebAPI初步 2015/03/17 · IT技术 · .Net, Asp. ...

  7. Asp.Net读写XML简单方法

    xml文件 <?xml version="1.0" encoding="utf-8"?> <book><title>weba ...

  8. ASP.NET Core -中间件(Middleware)使用

    ASP.NET Core开发,开发并使用中间件(Middleware). 中间件是被组装成一个应用程序管道来处理请求和响应的软件组件. 每个组件选择是否传递给管道中的下一个组件的请求,并能之前和下一组 ...

  9. Asp.Net Core发布绑定域名和端口

    一.WebHostBuilder配置URL和端口进行侦听 UseUrls() 1.默认的ASP.NET Core项目绑定http://localhost:5000.通过使用UseUrls扩展方法--编 ...

最新文章

  1. 收集全面WIN7共享设置
  2. java 异常练习题_java入门异常处理练习题问题
  3. python验证码重叠_用Python机器学习搞定验证码
  4. java ejb项目_Maven创建EJB项目结构
  5. mysql5.6 pid_MySQL5.6启动报错The server quit without updating PID file
  6. 流媒体基本要点简述:如何在H264数据中获取PTS?
  7. 《机会的数学》--陈希孺
  8. 感谢有你,一路同行,历史文章汇总,涉及STM32、模块使用、传感器、物联网、鸿蒙、仿真和综合实例等嵌入式的方方面面,欢迎关注。
  9. solr配置索引库启动tomcat报错记录及解决
  10. 空降Leader,如何开展工作
  11. 计算机视觉论文-2021-03-31
  12. 数据仓库经典销售案例
  13. vue开发网站seo优化方法
  14. 汽车数据聚类分析——天池竞赛
  15. 鲁大师电动车智能化测评报告第十八期:加量降价,九号完成产品破圈?
  16. Exchange 2013/2016/2019修改附件大小限制
  17. 有趣的灵魂千篇一律,电脑滑动关机,仅需2步
  18. MIME Types MIME 类型
  19. matlab在线性代数中的应用
  20. 融云超级群的「新能力」

热门文章

  1. WIN10下Allegro卡死的问题解决
  2. 用mongoshake实现mongo分片集群到单实例和分片集群的数据同步
  3. 我的英语学习计划(修订版2006.4.7)
  4. 刷题集--GameZ游戏排名系统
  5. 全国计算机一级C考试试题,2015全国计算机一级考试试题
  6. 算法分析与作业7投资问题
  7. python实现一元线性回归详细步骤
  8. YTU 2895: H--唱歌的鸟儿
  9. Windows server 2003无法安装佳能打印机驱动问题
  10. 23、selenium爬取歌曲精彩评论