WEB 之API端口

一、什么是API端口 API:Application Program Interface

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

给大家举个例子吧,就好比如说你在餐馆点餐

到了饭店,喊一场服务员,点餐。

服务员拿出来菜单给你看,你点什么,她在小本本上记什么。

点好了之后,再把菜单送到后厨去。

这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?

点餐服务。

点餐服务需要什么呢?

谈一个服务,通常就是要谈输入是什么,输出又是什么。

从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。

有了输入和输出,服务员就可以提供了点餐的功能,这就是API,顾客就是调用者,服务员就是服务的提供者。

通常提到API我们就会想到SDK,我在这里也提一下吧。

那么什么是SDK呢?

当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。

二、API发展

API 概念的出现,远远早于个人计算机的诞生,更不用说网络的诞生了。在公用数据处理的早期,为了一个应用能够与其它系统交互,开发者便已开始设计可公开访问并描述清晰的“接入点”。早在那时,这种做法作为一种准则,已是软件开发的主流理念。 但是,直到分布式系统的出现,乃至网络的降临,这些基础概念才淋漓的发挥出其重要性和惊人功效。

当我们回顾 API 的历史,会发现其中有一个阶段非常重要。 那是2000年左右,SOA(面向服务的架构)正在发展之中。API 的一种形式在企业应用中诞生。作为 SOA 伟大实践的一种,这种形式的 API 走出了企业应用的领域,在创新科技的世界里找到了更肥沃的土壤。

到了今天,我们能从技术角度,找出无数原因来解释为何 web API 能够在各种类型、不同大小的企业中获得成功,甚至也广受政府机构的欢迎。 但实际上,技术并非一切。web API 的成功,还要归功于很多其它方面的因素。这些因素大多并不那么抢眼,所以需要我们认真的研究历史,经过仔细观察才会发现为何那些 web API 的开拓者能够成功。

时至今日,我们还是要去学习过去十几年里的最佳实践。在对那些成功提供 API 的开拓者,包括 Amazon,Salesforce, Ebay,Twitter进行研究时,我们不能忽略任何重要细节。要知道,它们提供的 API 大部分还在运行着。

SalesForce

2000 年 12 月 7 日, 在 IDG 2000 Demo 大会上,SalesForce.com 正式发布。

在 web API 领域,SalesForce.com不仅是抢跑第一,直到今天,依然是领者。SalesForce.com在实时 API, 测试及部署上,还是保持领先位置。最近又在移动应用开发和后端即服务(BaaS)方面,开了先河。

Ebay

2000 年 12 月 20 日,eBay 发布了 eBay Application Program Interface (API),同时还发布了 eBay 开发者计划。

eBay API 的目的是为了标准化集成。也为了让合作伙伴和开发者,在围绕 eBay 生态圈开发业务时,更加容易。

eBay 是 web API 和 web 服务的先驱。今天,依然运营着最成功的开发者生态环境。

del.icio.us

del.icio.us 是一个社交型的书签服务,用以保存、共享和查找 web 书签。Jousha Schachter 在 2003 年创建了这个网站。

Flickr

2004 年 12 月,Flickr 发布。这是一款非常流行的图片分享应用。 六个月后,Flickr 发布了它们的 API服务。再过六个月,Flickr 被 Yahoo 并购。

Facebook

2006年8月15日, Facebook 发布其开发平台和 API时,人们已经等待良久。 Facebook 开发平台的1.0 版本提供对 Facebook 好友、照片、活动和个人信息的访问。

API 使用 REST, 信息以 XML 格式提供。这也是当时社交 API 最通用的做法。

Twitter

2006 年 9 月 20 日, Twitter 将 Twitter API 推向世界。

有点类似 eBay API, Twitter 推出 API 也是无奈之举。 太多的网站攻击和太多的非法 API,让Twitter不胜其烦。

Twitter 公开的 API,以 REST 风格的接口提供 JSON 和 XML格式的数据。



ProgrammableWeb

在研究 API 的历史中,关注点极易局限于 API 本身。 而忽略了 web API 整个历史上最重要的那个孤独身影 -ProgrammableWeb。

2005 年 7 月, John Musser 创立了 ProgrammableWeb。 在他最早的“关于我们”页面上,他是这么说的:

ProgrammableWeb 是一个基于“网络即平台”理念的推荐站点和博客。 我们针对使用 Web 2.0 API 来开发应用的人,提供各种新闻、信息及资源。

之所以创建这个网站,是因为我自己想用,却无法找到类似的站点: 为 web 平台开发提供一个技术上的起点。虽然无法确证,但我创建的上一个推荐站点,在 Google 的该类主题中,排名几乎是最高的。而这个站点,会有来自社区的各种协助和努力,相信它会更加成功。

希望于您有助。

John Musser - 西雅图, 2005年8月

Mashery

2006 年 12 月, Mashery,第一个 API 服务提供商,“低调” 的出现。它为那些想要提供公开和私有 API 的公司,提供文档支持、社区管理和访问控制。

转载于:https://www.cnblogs.com/dk233/p/10016853.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web Serial API是一个Web API,提供了一种在Web浏览器中通过串行端口连接和通信的方式。以下是一个基本的Web Serial API示例,演示如何与串行设备进行通信。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Web Serial API Example</title> </head> <body> <button id="connectButton">Connect to Serial Port</button> <button id="disconnectButton">Disconnect from Serial Port</button> <textarea id="terminal"></textarea> <script> const connectButton = document.querySelector('#connectButton'); const disconnectButton = document.querySelector('#disconnectButton'); const terminal = document.querySelector('#terminal'); let serialPort; async function connect() { const filters = [ { usbVendorId: 0x2341, usbProductId: 0x8036 }, { usbVendorId: 0x2341, usbProductId: 0x8037 }, { usbVendorId: 0x2341, usbProductId: 0x804d }, ]; serialPort = await navigator.serial.requestPort({ filters }); await serialPort.open({ baudRate: 9600 }); while (serialPort.readable) { const reader = serialPort.readable.getReader(); try { while (true) { const { value, done } = await reader.read(); if (done) { console.log('[readLoop] DONE', done); reader.releaseLock(); break; } terminal.value += new TextDecoder().decode(value); } } catch (error) { console.log('[readLoop] ERROR', error); reader.releaseLock(); } } } function disconnect() { if (serialPort) { serialPort.close(); serialPort = null; } } connectButton.addEventListener('click', connect); disconnectButton.addEventListener('click', disconnect); </script> </body> </html> ``` 这个示例演示了如何通过Web Serial API连接到一个串行设备,并在文本框中显示接收到的数据。要运行此示例,您需要在支持Web Serial API的浏览器中打开它。注意:Web Serial API在某些浏览器中仍然处于实验阶段,可能需要在设置中启用该功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值