编码器的API指南

The best APIs you need today

+$If you've heard the term API but aren't entirely sure what it refers to, you've come to the right place. Used correctly, APIs can really enhance the user experience and open up new possibilities for your site or app.

在本编码器的API指南中,我们将准确解释API作为API所需的内容。我们还将介绍当今最常见和最受欢迎的API,那些不完全支持但值得关注的API,以及最后需要收藏的地方以听取最新消息。

什么使API成为现实?

当您使用任何语言编写代码时,您几乎肯定会在不知情的情况下使用一系列API。在其最简单的形式中,API(应用程序编程接口)是用于两个软件组件之间的通信的明确定义的规范。 API可以采用各种形式,但通常包括函数或方法的一些组合以及数据结构。

基本上它们提供了预编译功能,您可以利用它来构建自己的应用程序。 Java在其java。*包中附带了一组核心API,它提供了所有Java程序员都熟悉的语言的基本功能。

采用新的API可以让您的生活更轻松,并确保为您的用户提供现代化的体验

正是这些API使我们能够在我们编写的软件中创建有意义的功能。当然,自计算开始以来,软件组件需要进行通信,但是导致我们将API描述为标准化,开放性和重用的概念,其中底层功能与一些允许任何人的文档一起公开过来使用它。

+$There’s a continuous effort by standards bodies and browser makers to introduce new APIs to the web that make building sites and apps easier, or that bridge the gap between the browser and native software. Following the latest progress and adopting new APIs when well supported can make your own life easier, and ensure a modern experience for your users.

什么是浏览器API?

在Web环境中,您可能已经考虑过第三方提供的服务形式的API。例如,Google公开了一个Google Maps API,您可以将其作为开发人员使用,以将Google的地图,街景,导航等内容集成到您的应用中。

这涉及导入托管在Google服务器上的脚本,然后根据它们提供的API文档利用这些脚本中的对象和函数。像这样的API通常被称为服务器端API。

但是,您可能永远不会考虑的是,浏览器中内置的基本JavaScript功能也由一组API组成,这些API不断更新。这些客户端API提供了JavaScript中理所当然的许多基本功能,例如操作DOM,嵌入图形或声音,或与正在运行的设备连接。

+$More likely than not you’ll have read documentation for many of them online when building a site or app. These APIs are typically based on a single specification that ensures all browser makers implement the functionality consistently, thus ensuring your code works across any browser.

今天常用的API

整个JavaScript生态系统由API构建。以下是您可能已经遇到过的一些重要问题。

帆布SVG

Guide to APIs: SVG

现在,SVG在所有浏览器中得到普遍支持

Canvas和SVG是广泛使用的浏览器API最明显的例子。 canvas和SVG都提供了一组简单的入口点和JavaScript函数来实现各自的目标。这些天我们可以添加更新的WebGL的混合3D图形。

XMLHTTPRequest的

XMLHTTPRequest一段时间以来一直是用于向服务器发送异步请求的JavaScript API。例如,这可以让您从服务器检索数据并更新页面,而无需重新加载整页。它的名称是不合时宜的,因为它与JSON和XML一起使用。它可能会被最近的更新所取代获取API随着时间的推移。

网络套接字

Web套接字允许在浏览器和服务器之间打开双向通信会话。这使服务器能够为用户提供更新,而浏览器不需要间隔轮询服务器。今天许多网站都在使用网络套接字;在Stack Overflow上,它们用于提供问题回复的实时通知。

DOM功能

这似乎是一个警察,但重要的是要考虑。即使是核心JavaScript函数也可以执行操作DOM等操作。将文档对象视为入口点。这意味着虽然它们可以在不同的规范中定义,但我们将在下面看到的新API与已经存在多年的核心JavaScript函数之间几乎没有根本区别。

这些是一些最常用的API。您通常需要创建者的API密钥才能使用它们。

谷歌地图

Guide to APIs: Google Maps

Google地图提供了一组非常受欢迎的API

谷歌地图提供了一套非常受欢迎的API,它可以为数百万个网站带来地图功能,街景,导航等功能。 Google通过平台和功能提供大量API。最简单的是在页面上显示地图的基本页面嵌入,但也有许多JSON Web服务,例如,您可以接收一组位置之间的导航方向。

Facebook的

Facebook提供了一种名为Graph API的东西,它使网站和应用程序能够从Facebook获取数据并将数据写入Facebook。使用Graph API涉及将Facebook内容表示为一组节点(和相关数据字段)以及图形结构中的边缘。它还提供了一个Graph API Explorer,使经过身份验证的用户可以测试各种API调用的结果。

推特网站

+$Twitter offers several APIs for different use cases. The most straightforward is the Search Tweets API, which allows searching of the vast volume of historic tweets over a specified period of time and set of criteria. However, web developers may be most interested in Twitter for Websites, which provides a simple way to embed Twitter functionality into the front end, such as a simple Tweet button.

YouTube的

Guide to APIs: YouTube

YouTube API需要高带宽

+$The YouTube API enables you to embed YouTube functionality in your page and, like others on this list, allows you to retrieve content from and post content to the platform. Because of the high bandwidth required by its content, the YouTube API in particular is an interesting study in how developers limit the usage quota of APIs – Google uses a current of 'units' to price various operations.

亚马逊S3

Amazon S3(简单存储服务)是Amazon Web Services产品的一部分,提供REST API(以及客户端SDK以简化其使用),使您可以在存储上放置,修改和删除内容。许多用例都在服务器端,但亚马逊的教程涵盖了从浏览器将照片上传到云端的用法。

要观看的浏览器API

并非所有这些都准备好迎接黄金时段,但它们值得在将来使用。

地理位置API

您可能已经看过页面请求已经使用您的位置的权限。 Geolocation API,通过访问Navigator.geolocation对象,使网站或应用程序能够基于GPS,Wi-Fi和移动信号等信息的组合来确定用户的位置。它在所有主流浏览器中都受支持,但只能通过HTTPS连接使用。

推送API

+$Not to be confused with mobile push notifications, the Push API enables web apps to receive messages pushed from a server, even if the application is not in focus or the application is not loaded. To do this, it depends very much on a服务人员+$running in the background. There are a range of interesting applications here for providing real-time updates within web apps.

通知API

Notification API使页面能够在浏览器上下文之外显示通知。用户需要授予显式权限,但一旦完成,就可以通过创建新的通知来生成通知通知()宾语。这在桌面上得到广泛支持,但不是在移动设备上,但是特别有趣的是将其与Push API相结合以向用户启用后台通知可能产生的可能性。

WebVR API

正如您所料,WebVR旨在增加对Web的支持虚拟现实设备+$such as the Oculus Rift and HTC Vive within the browser. The WebVR API would allow web developers to directly utilise position and motion data from the device for use on a page (most likely in tandem with WebGL). This could be very exciting for future projects, but is experimental at this time, with limited support (by device) in Edge, Firefox and Chrome.

振动API 

我们现在可能会进入一个略显可疑的领域。通过。调用Navigator.vibrate()方法,振动API可能是寻求使Web应用程序更接近本机的必要条件。然而,它也很明显容易被滥用,并且在早期有零星报道广告在未经同意的情况下使用它以吸引用户的注意力。它目前在Edge和Safari中得到支持,因此iPhone用户运气不佳。

电池状态API

这是一个API没有成功的例子。电池状态API旨在通过其名称执行或多或少的操作。它介绍了一个Navigator.getBattery()返回带有电池对象的promise的方法,然后可以用于监听与电池状态相关的各种事件。它目前仅支持Chrome和Opera,由于隐私问题,它不太可能进一步支持。

加密媒体扩展

如果您想了解Web API世界中的争议,请查看加密媒体扩展。 EME允许HTML5视频播放受DRM保护的内容。对此提出了异议,因为它将专有组件引入了主要开放和自由的网络生态系统。无论您的观点如何,规范都将保留下去。

哪里可以找到更多?

随着新API的出现,这里有一些最好的地方可以保持最新。

Mozilla开发者网络

Guide to APIs: MDN

MDN提供有关API的全面文档

Mozilla开发人员网络(MDN)提供了有关Web技术的最全面的参考资料之一。除了所有最新API的文档之外,它还包括说明其用法的教程和代码示例。在学习新东西时,这几乎总是一个很好的起点。

W3C

W3C规范并不总是容易实现,可能不适合日常使用。但是,如果您对规范的某些细节感兴趣,想要了解未来可能会出现但尚未在浏览器中实现的内容,或者只是对规范的实现方式感到好奇,那么值得浏览。

HTML5.org。网络平台

如果你发现自己对构成现代网络的不断增长的技术和API感到困惑,那么这个页面可能是一个很好的参考源。为方便起见,它列出了现代HTML,CSS和JavaScript平台的所有组件,包括API。如果不出意外,为偶尔混乱的生态系统带来秩序感是一种令人钦佩的努力。

我可以用吗

Guide to APIs: Can I Use

浏览器支持是围绕API的最大挑战之一

浏览器对最新API的支持可能是一个挑战,而且很难知道某些东西是否真的可以使用。我可以使用提供有关API的浏览器支持状态以及其他Web功能的极好参考资料。

+$This article was originally published in issue 268 of creative web design magazine网页设计者立即订阅Web Designer

阅读更多:



翻译字数超限