你有没有听说过“API”这个词,并且想知道这是什么意思?您是否有一个模糊的想法,但想了解更多关于您可以使用API做什么,以及如何构建API?
不要担心,草根SEO教你快速深入了解并分析API是什么,以及如何构建API与构建其他类型的Web应用程序和网站相似(或不同!),以下是关于API是什么,使它与众不同以及您自己构建API需要什么的简短入门。
应用程序编程接口(API)
在基本术语中,API只允许应用程序相互通信。
当人们谈论“API”时,他们有时会概括并且实际上意味着“公共可用的基于Web的API返回数据,可能是JSON或XML”,API不是数据库,甚至不是服务器,它是管理服务器访问点的代码。
在这篇文章中,我们将关注这些特定类型的API – 基于Web的API,它们返回数据以响应客户端的请求。
它们允许我们从外部来源获取数据。
我们可以向API发送详细说明我们想要的信息的请求。
API允许我们的站点也改变其他应用程序上的数据,例如,您可能已经在杂项网站上看到“在微信上分享”或“在微博上分享”按钮,如果您单击其中一个按钮,您访问的网站可以与您的微信或微博帐户通信,并通过添加新状态或博文来更改其数据。
谁创建公共的,基于Web的API?
大型科技公司,特别是社交媒体公司经常向公众提供他们的综合数据,但API也由政府组织,会议,出版社,软件创业公司,粉丝团体,电子竞技联盟甚至个人维护,以便分享任何内容。社交媒体内容以琐事问题,排名,地图,歌词,食谱,零件清单等。
简而言之,任何收集数据的个人或组织都可能有兴趣使这些数据可供其他应用程序使用,也许你有一个你想要构建和提供的API?
API如何与“常规”数据库支持的项目不同
API与数据库支持(或静态)Web应用程序或站点的不同之处在于它通常不需要包含前端 – 没有HTML,需要通过静态页面向用户显示CSS或动态生成的融合数据的模板具有可重复使用的布局。
通过向服务器发送HTTP请求,通常在没有前端的情况下完成检索或写入数据的请求。
如果您熟悉使用Java,Ruby,PHP,JS通过节点或其他语言构建服务器端应用程序,您可能会认识到需要某些路由:触发路由处理程序的URL在收到带有某些数据的请求时发出某些操作。API具有与不同站点相同的路由,它们通常不在这些路由上提供模板。
那么什么是JSON以及我们为什么要使用它?
JSON代表JavaScript Object Notation,基本上是一种表示看起来像JavaScript对象的数据的方式。
让我们看一个非常典型的餐厅JavaScript对象,它可能看起来像这样:
“restaurant”:{
“name”:“Fish Witch”,
“address”:“214 NE Broadway”,
“zipcode”:“97232”,
“phone”:“503-000-0000”,
“website”:“ https://www.simcf.cc/ “,
”email“:” [email protected] “
}
整齐,这很容易阅读 – 我们的数据存储为键/值对,这意味着我们可以在左侧看到键,在右侧看到值,每个Restaurant对象的键保持不变,但值不同。一个不同的餐厅将有一个不同的地址,但其属性将是相同的 – 它将始终有一个名称,地址,邮编,电话和电子邮件。
JSON 在现代Web应用程序中无处不在,它是可读,轻量级的,并且它非常适合用JavaScript编写的应用程序,因为它是 JavaScript。但是,用其他语言编写的应用程序也可以比较容易地读取它并生成它 – 包括Java。
这意味着返回JSON的API可以由用Java,Ruby,Python,JS,PHP等编写的应用程序访问。这使得API 可扩展且与平台无关。
如何建立一个API?
构建API完全可以让任何了解服务器端Web应用程序编程和路由的开发人员都可以使用,例如Java Spark,JavaScript Express,C#,ASP.net,Ruby on Rails等等。
使用GSON库在Java Spark中构建的简单API示例
要构建公共API,您需要以下内容:
如上所述的具有某种路由的后端
应用程序可以存储其数据的数据库,这可能是您正在运行的数据库服务器,例如MySQL或Postgres,也可能是一个BaaS(后端即服务)数据库,如Firebase。
服务器,可能是Internet可访问的VPS(虚拟专用服务器),您的应用程序可以在其中运行。
如何将API绑定到我的应用程序中?
API可以在很大程度上扩展您的应用程序的功能,添加地图,天气数据或其他信息非常有用。
查找提供您要访问的信息类型的公共API,确保记录和维护得当,有些网站提供的许多API,例如百度地图就提供一个展示位置的地图API。
阅读文档以确保API适合您,许多API要求您注册API密钥以访问其数据,或者在您访问信息之前,他们需要具有您的应用程序需要经过的身份验证流程。
API使开发人员的生活更轻松
假设您想为iPhone开发应用程序,Apple的iOS操作系统提供了大量的API – 正如其他所有操作系统所做的那样,让您更轻松。
例如,如果要嵌入Web浏览器以显示一个或多个网页,则无需为您的应用程序从头开始编写自己的Web浏览器,您可以使用WKWebView API在应用程序中嵌入WebKit(Safari)浏览器对象。
如果您想从iPhone的相机中捕捉照片或视频,则无需编写自己的相机界面,您可以使用相机API在应用程序中嵌入iPhone的内置相机,如果没有API可以轻松实现这一点,那么应用程序开发人员必须创建自己的相机软件并解释相机硬件的输入。但Apple的操作系统开发人员已经完成了所有这些艰苦的工作,因此开发人员可以使用相机API嵌入相机,然后继续构建他们的应用程序。
API控制对资源的访问
API还用于控制对应用程序未必具有使用权限的硬件设备和软件功能的访问,这就是API经常在安全性方面发挥重要作用的原因。
相关: 如何阻止网站询问您的位置
例如,如果您访问过某个网站并在浏览器中看到该网站要求查看您的确切位置的消息,则该网站会尝试在您的网络浏览器中使用地理定位API,Web浏览器公开这样的API,以便Web开发人员可以轻松访问您的位置 – 他们可以询问“您在哪里?”,浏览器可以轻松访问GPS或附近的Wi-Fi网络以查找您的物理位置。
但是,浏览器还会通过API公开此信息,因为它可以控制对它的访问。当一个网站想要访问您确切的物理位置时,他们可以通过位置API获得它的唯一方法。并且,当网站尝试使用它时,您 – 用户 – 可以选择允许或拒绝此请求,访问GPS传感器等硬件资源的唯一方法是通过API,因此浏览器可以控制对硬件的访问并限制应用程序可以执行的操作。
同样的原则也用于现代移动操作系统,如iOS和Android,其中移动应用程序具有可以通过控制对API的访问来实施的权限。例如,如果开发人员尝试通过相机API访问相机,则可以拒绝权限请求,并且应用无法访问设备的相机。
使用权限的文件系统(如在Windows,Mac和Linux上一样)具有文件系统API强制执行的权限,典型应用程序无法直接访问原始物理硬盘。相反,应用程序必须通过API访问文件。
API用于服务之间的通信
API也用于各种其他服务,例如,如果您曾在网站上看到嵌入了百度地图对象,则该网站会使用百度 Maps API嵌入该地图,百度向这些Web开发人员公开这样的API,然后他们可以使用API在他们的网站上填充复杂的对象。如果这样的API不存在,开发人员可能必须创建自己的地图并提供他们自己的地图数据,只是为了在网站上放置一个小的交互式地图。
结论
如果您已经了解了这一点,您将更好地了解API是什么。最终,除非您是开发人员,否则您不需要知道API是什么。但是,如果您看到软件平台或服务为各种硬件或服务添加了新API,那么开发人员应该更容易利用这些功能。