什么是API,说人话!

在我学习软件开发之前,API 听起来就像一种啤酒


不过今天我经常使用这个名词以至于我最近在酒吧的时候都想点一杯 API了


酒保的反映是抛出了个404:找不到该资源


我碰到很多人,无论是在技术行业工作的还是其他,他们对API这个相当常见的名词的含义的理解有点模糊和偏差


严格的来说, API 代表:应用程序编程接口,在某些或其他方面,很多大型公司会建立自己的API提供给用户或者内部使用


不过怎么用通俗的语言向你解释什么是API呢,在开发和业务中他是不是更多的含义呢,让我们后退一步看看网络是如何工作的。


www和远程服务器

当我想到网络的时候,我脑海中想象了一张巨大的连接服务网络


每一张页面都储存在远程服务器中,而一个远程服务器并不是那么的神秘,他就是一部分用来优化请求过程的远程计算机


为了能让事情更透明,你可以在你一台可以服务整个网站到网络上的手提电脑上启动一个服务器(事实上,一个本地服务器就是在发布到公众上之前工程师需要开发网站:注:其实这句话我不是很理解,翻译得乱七八糟,原文是:a local server is what engineers use to develop websites before releasing them to the public)


当你键入www.facebook.com进入你的浏览器并回车的时候,一个请求就去到了faceboook的远程服务器。一旦你的浏览器接收到了响应,它就解析代码并展示页面。


浏览器,也就是我们说的客户端 ,也可以不太严谨的说facebook的服务器就是个API ,这意味这每次你在网络上浏览网页的时候,你就和一些远程服务器的API发生了交互。


一个API并不是等同于一整个远程服务器,他是服务器用来接受请求和发送响应的一部分


API就是一种为你客户提供服务的方法

你可能听说过公司将API包做成一个产品,例如,”地下气象站“出售的就是它自己的气象数据API的 入口


实例场景: 你的个人小型商业网站有一个给客户注册的预约表格,你想要给你的客户提供自动创建一个谷歌日历时间的能力。


API 使用:这概念就是让你的网站服务器带着请求去创建一个具体的事件,你的服务器之后会接收到谷歌的响应,处理它,然后将有关信息发送回给你的浏览器,例如发送一个认证信息给你的用户


另外,你的浏览器会通过你的服务器经常直接发送API 请求到谷歌服务器


谷歌日历的API 和其他的远程服务器的API 究竟有什么不同


专业的说,不同之处在于他们的请求和响应的形式是不一样的


当你提交整个页面的时候,你的浏览器期待的是一种HTML格式的响应,这个响应里包含了一些描述性的代码,当谷歌日历API 响应的时候会返回一些数据,大多是类似与json的格式


如果你的网站服务器发出了个API 请求,那么你的网站服务器就变成了个客户端(类似与当你使用浏览器访问网站的时候你的浏览器就成了客户端一样)


从用户的角度来说,API允许他们完成一些没有离开网站的动作


很多现代的网站都至少使用了一些第三方API


很多问题都有了第三方的解决方案了,无论是以函数库或者是服务的形式,使用第三方的解决方案现在已经逐渐变得更简单和更可靠。


这是很常见的,开发团队将他们的应用分解到多个服务器里面,服务器通过API 相互交流。为主应用服务器提供辅助功能的服务器这方面的知识可以参考微型服务器


总得来说,当一个公司向它的用户提供了API 的时候,这就意味着他们建造了一系列的专用URL通道,用来返回纯数据形式的响应,意味这响应不会包含一些用于解释的额外开销,你期望的是一种像网站一样的图表用户界面。


你的浏览器可以发送这种请求吗,当然可以,由于实际的HTTP传输都是以文本的形式进行的,你的浏览器总是能达到它能展示响应的最好状态


例如,你可以通过浏览器直接访问GitHub的API ,甚至根本不需要访问标记(=_= # 什么是访问标记.....),当你用浏览器访问一个GitHub的用户API的时候,你将获得一个JSON形式的响应

{
  "login": "petrgazarov",
  "id": 5581195,
  "avatar_url": "https://avatars.githubusercontent.com/u/5581195?v=3",
  "gravatar_id": "",
  "url": "https://api.github.com/users/petrgazarov",
  "html_url": "https://github.com/petrgazarov",
  "followers_url": "https://api.github.com/users/petrgazarov/followers",
  "following_url": "https://api.github.com/users/petrgazarov/following{/other_user}",
  "gists_url": "https://api.github.com/users/petrgazarov/gists{/gist_id}",
  "starred_url": "https://api.github.com/users/petrgazarov/starred{/owner}{/repo}",
  "subscriptions_url": "https://api.github.com/users/petrgazarov/subscriptions",
  "organizations_url": "https://api.github.com/users/petrgazarov/orgs",
  "repos_url": "https://api.github.com/users/petrgazarov/repos",
  "events_url": "https://api.github.com/users/petrgazarov/events{/privacy}",
  "received_events_url": "https://api.github.com/users/petrgazarov/received_events",
  "type": "User",
  "site_admin": false,
  "name": "Petr Gazarov",
  "company": "PolicyGenius",
  "blog": "http://petrgazarov.com/",
  "location": "NYC",
  "email": "petrgazarov@gmail.com",
  "hireable": null,
  "bio": null,
  "public_repos": 23,
  "public_gists": 0,
  "followers": 7,
  "following": 14,
  "created_at": "2013-10-01T00:33:23Z",
  "updated_at": "2016-08-02T05:44:01Z"
}
一个JSON的响应就像它已经是可以让你直接使用的代码了,很容易在这段文本里添加额外的数据,然后你就可以对这段数据做任何你想要做的事了


A就是application

作为结束,就多扔几个关于API 的事例吧


“应用”可以指很多事情,在API 里面他指代的是:

 1 :一个具有不同功能的软件
 2:整个服务器,整个app,或者是app的一小部分

基本上任何软件都可以从环境中有区别的分离开来,有可能在API 里成为A(也就是Application),也可能它本身就是某种API


假设你在你的代码里使用了第三方的函数库,一旦与你的代码结合了,一个函数路就成为了你真个APP里的一部分,成为软件中特殊的一部分,函数库很可能具有一个让你可以与你其他的代码相互沟通的API 


这有其他的一些例子,在面对对象设计中,代码是被组织进对象的,你的应用程序可能是由上百个可以相互交流的类构成的


每个类都有一个API ,一系列公共方法和用于和其他类进行交流的的属性


一个类可能有内部的私有化属性,这意味这它是对外部环境隐藏的(不是一个API )


在使用API 这个东西越来越普遍的今天,希望你看完本篇文章后会有更多的理解


 


  • 43
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
西门子 API是指西门子公司提供的应用程序接口(Application Programming Interface)。API是一组定义了通信协议和工具的接口,允许不同的软件系统之间进行交互和数据传输。 西门子API为开发人员提供了一种通用的方式来与西门子的产品和解决方案进行集成。通过使用这些接口,开发人员可以访问和控制西门子的硬件设备、工业自动化系统和软件平台。 西门子API提供了一系列的功能和服务,例如: 1. 远程监视和控制:开发人员可以通过API远程监视和控制西门子的设备和系统,进行实时数据采集、远程诊断和操作控制。 2. 数据传输和集成:开发人员可以使用API将西门子设备和系统的数据集成到其他应用程序或云平台中,实现数据的共享和分析。 3. 自定义应用程序开发:使用API,开发人员可以创建定制化的应用程序,根据特定业务需求来扩展和改进西门子的产品和解决方案。 4. 故障诊断和维护:通过API,开发人员可以实现对西门子设备的故障诊断和预测性维护,提高设备的可靠性和运行效率。 总之,西门子API是一种允许开发人员与西门子的产品和解决方案进行交互的接口,通过使用API,开发人员可以创建定制化的应用程序,实现数据的传输和集成,以及远程监视和控制西门子的设备和系统。这为企业和工业客户提供了更灵活、智能化和高效的解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值