【答疑解惑】什么是API?

有朋友在群里问什么是API?这个问题是很多初学者常常听到但又感觉讳莫如深。

API的英文是ApplicationProgramming Interface,也就是应用程序编程接口。以下选自百度百科对API的解释说明:

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

简单的说就是为第三方提供具有特定功能或者实现的函数,一般情况下,该函数不对外提供源码,只有提供函数接口的参数和功能的详细说明。所有的系统平台都提供大量的API,比如Windows、Unix/Linux、Mac。除了系统平台,大量开源软件、中间件也提供许多API共用户调用以实现特定功能。下面我举一个典型的Windows API:

UINT WINAPI GetSystemDirectory(LPTSTR lpBuffer, UINT uSize);

说明:该函数获取Windows的系统目录。参数lpBuffer提供用于返回的系统目录,uSize表示lpBuffer控件的大小。如果你的Windows系统安装在C盘,返回结果应该是C:\Windows\System。

广义上说,各种编程语言提供的库函数也可以称为API,因为不管从哪个角度来说,它都满足API这个定义,只是我们常常把编程语言叫做库函数,本质上API也是以函数提供。只要你在编程,你就会使用API。

对于我们编程人员来说,就是要正确使用API才不至于导致错误,使用API需要注意的就是认真阅读API的各个参数、返回值、注意事项以及关系密切的API说明。只要注意到这些,绝大多数的API都难不倒你了。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

第一章 Web MVC简介 —— 跟开涛学SpringMVC

1、  Web浏览器(如IE)发起请求,如访问http://sishuok.com

391
来自专栏SDNLAB

SDN实战团分享(二十一):ONOS开发实战之OVS Manager(Bootcamp 2016)

Agenda: 1.ONOS整体架构简介、ONOS子系统架构简介 2.App应用代码框架、运行机制简介 3.OVS Manager需求及技术分析 4.OVS ...

4459
来自专栏逸鹏说道

互联网+ 何人能挡?带着你的Code飞奔吧!

SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com...

1877
来自专栏菩提树下的杨过

spring boot + embed tomcat + standalone jar的内存泄露问题

前一阵遇到了一个很坑的内存泄露问题,记录于此: 有个项目采用spring cloud重构后,部署到线上(其中有一个接口,大概每天调用量在1千万次左右),发现za...

1826
来自专栏walterlv - 吕毅的博客

分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer )

2018-09-13 12:59

331
来自专栏coolblog.xyz技术专栏

基于epoll实现简单的web服务器

epoll 是 Linux 平台下特有的一种 I/O 复用模型实现,于 2002 年在 Linux kernel 2.5.44 中被引入。在 epoll 之前,...

40610
来自专栏静默虚空的博客

细说Java主流日志工具库

概述 在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息。 在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子。 我们先来逐一了...

2548
来自专栏DevOps时代的专栏

Jenkins 的 Pipeline 脚本在美团餐饮 SaaS 中的实践

在日常开发中,我们经常会有发布需求,而且还会遇到各种环境,比如:线上环境(Online),模拟环境(Staging),开发环境(Dev)等。最简单的就是手动构建...

562
来自专栏高性能服务器开发

从零学习开源项目系列(三) CSBattleMgr服务源码研究

如上图所示,这篇文章我们将介绍CSBattleMgr的情况,但是我们不会去研究这个服务器的特别细节的东西(这些细节我们将在后面的文章中介绍)。阅读一个未知的项目...

723
来自专栏程序人生

撰写合格的REST API

两周前因为公司一次裁人,好几个人的活都被按在了我头上,这其中的一大部分是一系列REST API,撰写者号称基本完成,我测试了一下,发现尽管从功能的角度来说,这些...

3135

扫描关注云+社区