什么是API?

什么是API?我们总是听说api是多么有价值,他们将对业务产生重大影响。然而,API的定义是什么?

API代表应用程序编程接口。API是允许两个应用程序相互对话的软件中介。换句话说,API是一个信使,它将您的请求交付给您所请求的提供者,然后将响应交付给您。

api允许在设备之间发送数据

API定义了独立于其各自实现的功能,这允许这些实现和定义在不影响彼此的情况下发生变化。因此,一个好的API通过提供构建块使开发程序变得更容易。

当开发人员创建代码时,他们通常不会从零开始。api使开发人员可以使用少量代码使重复但复杂的过程高度可重用。api使开发人员构建应用程序的速度对于当前应用程序开发的速度至关重要。

开发人员现在的工作效率比以前要高得多,以前他们必须从头开始编写大量代码。有了API,他们不必在每次编写新程序时都重复劳动。相反,他们可以专注于其应用程序的独特主张,同时将所有商用功能外包给api。

API抽象的原则支持速度和敏捷性

api的主要优势之一是允许在一个系统和另一个系统之间抽象功能。API端点将消费应用程序与提供服务的基础设施解耦。只要服务提供者交付给端点的规范保持不变,依赖于该API的应用程序就不应该注意到端点背后基础设施的更改。

因此,当涉及到如何提供服务时,服务提供者获得了很大的灵活性。例如,如果API背后的基础设施涉及数据中心的物理服务器,服务提供者可以轻松切换到运行在云中的虚拟服务器。

如果运行在这些服务器上的软件(比如信用卡处理软件)是用运行在基于oracle的Java应用服务器上的Java编写的,服务提供者可以将其迁移到运行在Windows Azure上的Node.js(服务器端Javascript)。

api引导的连接允许系统像将插头插入插座那样容易地进行更改,这种能力是现代企业IT远景的关键。连接企业解决方案的混乱的点对点集成的日子已经一去不复返了,维护这些解决方案需要花费时间和资源。

api是如何工作的?

想象一下餐馆里的一个服务员。你,顾客,坐在桌边,拿着一份可供选择的菜单,而厨房是满足你的订单的提供者。

你需要一个连接来传达你的订单到厨房,然后把你的食物送回你的桌子。不可能是厨师,因为她在厨房做饭。你需要把点餐的顾客和准备食物的厨师联系起来。这就是侍者——或API——进入画面的地方。

服务员把你点的菜送到厨房,告诉厨房该怎么做。然后它把反应传递给你,也就是食物。此外,如果API设计正确,您的订单不会崩溃!

一个API的真实例子

api在现实世界中是如何使用的?这是API经济的一个非常常见的场景:预订航班。

当你在网上搜索航班时,你有一个可供选择的菜单。你可以选择出发的城市和日期、返回的城市和日期、舱位以及其他可变因素,比如你的餐点、座位或行李要求。

要预订航班,你需要与航空公司的网站进行互动,访问航空公司的数据库,以查看这些日期是否有座位,以及根据日期、航班时间、航线受欢迎程度等确定的价格。

您需要从航空公司的数据库中访问这些信息,无论您是通过网站或汇集了多家航空公司信息的在线旅游服务与之交互。或者,您可以从移动电话访问信息。在任何情况下,您都需要获取信息,因此应用程序必须与航空公司的API交互,使其能够访问航空公司的数据。

API是一个接口,就像你的服务员一样,运行你正在使用的应用程序并通过互联网将数据传递给航空公司的系统。然后,它还会接收航空公司对您的请求的响应,并将其发送回您正在使用的旅行应用程序。此外,通过流程的每一步,它促进了用户之间的交互。

类型的api

有许多类型的api。例如,您可能听说过Java api,或者类中的接口,它们允许对象在Java编程语言中相互通信。除了以程序为中心的api之外,还有一些Web api,如简单对象访问协议(SOAP)、远程过程调用(RPC),以及可能最流行的(至少在名称上)代表状态传输(REST)。根据可编程Web的说法,有15000个公开可用的api,还有成千上万个私有的api,公司使用它们来扩展内部和外部的功能。

api如何使用_什么是API, API是如何工作的?相关推荐

  1. api接口优化_使用电池状态API优化开发

    api接口优化 Imagine if you could program your app to adapt to the end user's device - such as turning of ...

  2. api地理编码_通过地理编码API使您的数据更有意义

    api地理编码 Motivation 动机 In my second semester of my Master's degree, I was working on a dataset which ...

  3. [转载] api地理编码_通过地理编码API使您的数据更有意义

    参考链接: Python | 反向地理编码以使用地理坐标获取地图上的位置 api地理编码 Motivation 动机 In my second semester of my Master's degr ...

  4. java高德地图api开发平台_【高德地图API】从零开始学高德JS API(一)地图展现...

    摘要:关于地图的显示,我想大家最关心的就是麻点图,自定义底图的解决方案了吧.在过去,marker大于500之后,浏览器开始逐渐卡死,大家都开始寻找解决方案,比如聚合marker啊,比如麻点图啊.聚合m ...

  5. 盈透api python封装_盈透证券 简单API 实战

    1. 需求 把每日的操作固定下来后,每天提交订单是一件非常麻烦的事情.盈透证券的TWS支持收市订单,即在北京时间早上4:00下单.但是这种订单类型不支持条件.比如我要在4:00 的时候下单购买 SP- ...

  6. 社交媒体平台api接口功能_针对社交媒体API的新Java规范请求

    社交媒体平台api接口功能 针对Java 7的最新Java规范请求已经浮出水面,提出了一种用于访问私有和公共社交信息网络的API,范围从Facebook和Twitter到企业和机构内的网络. 社交媒体 ...

  7. java百度api人脸识别_百度人脸识别api demo

    自己用Java写的一个可以参考一下,我这种5年没写过代码的人都能写,难道比我还新手?你需要多一些信念! package com.baidu.cloudservice.bfr; import java. ...

  8. python 美团api接口对接_美团券对接API文档

    美团券验证平台接入文档 1  接入步骤 2 验证流程 3 接口设计 3.0 说明 3.0.1 sign计算方法: 3.0.2 测试用的app_key,sign_key和美团券密码: 3.1 M1接口: ...

  9. python批量爬取小网格区域坐标系_Python爬虫实例_利用百度地图API批量获取城市所有的POI点...

    上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1.设置请求参数(url,headers,co ...

  10. rest api是什么_一文搞懂什么是RESTful API

    RESTful接口实战 首发公众号:bigsai 转载请附上本文链接 文章收藏在回车课堂 前言 在学习RESTful 风格接口之前,即使你不知道它是什么,但你肯定会好奇它能解决什么问题?有什么应用场景 ...

最新文章

  1. 【每日一算法】两数相加
  2. Day 25: 联合Tornado、MongoDB 和 AngularJS 进行应用开发
  3. expdp / impdp 用法详解(Oracle)
  4. java城市公交查询系统案例_013JAVA.JSP城市公交查询系统.zip
  5. 腾讯DCI上线基于集中控制的SR-TE方案
  6. Linux下临时以非root身份执行命令
  7. 如何解决在ASP.NET Core中找不到图像时设置默认图像
  8. PyQt5树形结构控件QTreeWidget操作
  9. Android 系统(247)---Android Go项目, Launcher no Notification Dots
  10. Java伪代码之大道至简读后感
  11. 专访死马:为什么说Egg.js是企业级Node框架
  12. html的动态页面包含,在html页面中包含静态或动态页面方法
  13. 2018年华为软件精英挑战赛-初赛赛题
  14. Latex下载和使用
  15. 2022年对于李一男是关键的一年,这也将决定他的社会地位
  16. DirectX支配游戏 历代GPU架构全解析
  17. 2022年拼多多双十二活动什么时候开始?会有哪些福利?
  18. VMware虚拟机装系统出现Units specified dont exist
  19. AI 助力智慧城市发展 | 腾讯视觉峰会回顾
  20. 小学三年级计算机室使用计划,关于三年级信息技术教学计划(精选6篇)

热门文章

  1. Windows7 中配置IIS7的方法(HTTP 错误 404.3 - Not Found)
  2. 谷歌杀手Wolfram Alpha搜索引擎上线测试
  3. 经验分享:服务器托管必用的10大工具
  4. 《剑指offer》c++版本 10. 斐波那契数列
  5. ButterKnife Zelezny导入不成功遇到的问题
  6. lua 收不到服务器发来消息,lua 学习之错误处理
  7. apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!
  8. java中封装日期加时间_java日期处理简单封装
  9. 行号 设置vim_Vim从小白到入门
  10. matlab求一个方程组的系数矩阵,【求解】matlab求解非齐次方程组,但是系数矩阵是复数,求帮忙...