精华内容
参与话题
问答
  • 什么是API

    千次阅读 多人点赞 2018-07-01 12:50:35
    工作中,多个系统直接对接通信通常需要api来支持,api几乎无处不在。在复杂的系统中,各组件之间的通信都是通过API的,如openstack的nova-api,glance-api、kubenetes的api-...什么是API 这一类的文章有很多连接...

    工作中,多个系统直接对接通信通常需要api来支持,api几乎无处不在。在复杂的系统中,各组件之间的通信都是通过API的,如openstack的nova-api,glance-api、kubenetes的api-server,超融合的Controller VM等。同时,很多厂商也会提供api给开发者调用,实现服务的接入,如百度地图的api,微信接口的api。

    什么是API

    这一类的文章有很多连接可以查,我就不多说了,说了也说不好。
    先看这个: API就是一种为你客户提供服务的方法
    下面简单说一下我的理解:
    作为一个开发人员,我们使用spring boot可以很快速的开发出一个RESTful api,
    对了,api也有成为RESTful风格的api,简单讲,就是api中不出现动词 如:

    查询所有用户:http://www.example.com:8080/users              请求方法GET
    创建一个用户:http://www.example.com:8080/users              请求方法POST
    查询一个用户:http://www.example.com:8080/users/{user_id}   请求方法GET
    更新一个用户:http://www.example.com:8080/users/{user_id}   请求方法PATCH/PUT
    删除一个用户:http://www.example.com:8080/users/{user_id}   请求方法 DELETE

    太复杂的也不需要理解太多
    使用Spring Boot 快速构建RESTful风格的api,关键要理解的是要理解七个HTTP方法:
    GET: 获取
    POST: 提交
    PUT:全量更新 PATCH:更新部分
    DELETE: 删除
    参考:Spring Boot构建RESTful API

    SDK是一个好帮手

    先看这个:什么是sdk
    简单说一下我的理解:
    调用api的过程,在开发者的角度讲,需要写代码带上验证的token,发送http/https请求,打开数据流,提交请求参数,读取返回信息,才能获取到数据,返回的数据一般为json格式,还需要解析json,等一系列复杂的操作,sdk的存在就把这些都给做了,只要把验证的token,请求参数,地址给它,它就给返回你要的信息,甚至还帮你封装到model,直接使用就可以了,非常方便。

    API和SDK的关系

    api是服务端提供的服务,sdk就是调用服务的软件开发工具。api调用简单,sdk方便快捷。但是在没有sdk的情况下,自己去封装sdk的话往往需要一些工作量,开发者可以根据需要自行选择合适的方式去使用。

    展开全文
  • 什么是API

    千次阅读 2007-04-13 17:09:00
    首先,有必要向大家讲一讲,什么是API。所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数, 他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,...


    首先,有必要向大家讲一讲,什么是API。所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数, 他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和 结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT操作系统上的应用程序。可以说,如果你曾经学过VC,那么API对你来说不是什么问题。但是如果你没有学过VC,或者你对Windows95的结构体 系不熟悉,那么可以说,学习API将是一件很辛苦的事情。

    如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL 的文件。一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。我们能都掌握它嘛?回答是否定的∶不可能掌握。但实际上,我们真的没必要都掌 握,只要重点掌握Windos系统本身自带的API函数就可以了。但,在其中还应当抛开掉同VB本身自有的函数重复的函数。如,VB
    的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。对API来讲也有对应的函数
    GetFileAttributes 和SetFileAttributes,性能都差不多。如此地一算,剩下来的也就5、600个。是的,也不少。但,我可以敢跟你说,只要你熟悉地掌握 100个,那么你的编程水平比现在高出至少要两倍。尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近
    WINDOWS。如果你学会了API,首要的收获便是对WINDOWS体系结构的认识。这个收获是来自不易的。

    如 果你不依靠API会怎么样?我可以跟你说,绝大多是高级编程书本(当然这不是书的名程叫高级而高级的,而是在一开始的《本书内容》中指明《本书的阅读对象 是具有一定VB基础的读者》的那些书),首先提的问题一般大都是从API开始。因此可以说,你不学API,你大概将停留在初级水平,无法往上攀登。唯一的 途径也许就是向别人求救∶我快死了,快来救救我呀,这个怎么办,那个怎么办?烦不烦呢?当然,现在网上好人太多(包括我在内,嘻嘻),但,你应当明白,通 过此途径,你的手中出不了好的作品。这是因为缺乏这些知识你的脑子里根本行不成一种总体的设计构思。
    API文本游览器 [返回]

    很多API函数都是很长很长的。想看什么样子吗?如下就是作为例子的API DdeClientTransaction函数∶
    Declare Function DdeClientTransaction Lib "user32" (pData As Byte, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As Long
    哇!这么长?如果你从来没有接触过API,我想你肯定被吓住了。你也许考虑,该不该继续学下去。不过不要担心,幸运的是Microsoft的设计家们为我们提供了有用的工具,这便是API
    文本查看器。

    通 过API文本查看器,我们可以方便地查找程序所需要的函数声明、结构类型和常数,然后将它复制到剪贴板,最后再粘贴到VB程序的代码段中。在大多数情况 下,只要我们确定了程序所需要的函数、结构和常数这三个方面后,就可以通过对API文本游览器的以上操作将他们加入到程序段中,从而程序中可以使用这些函 数了。这些是学习API最基本的常识问题,它远远占不到API的庞大的体系内容。今后我们把精力浪费(这绝不是浪费)在哪里呢?那就是∶
    什么时候使用什么函数,什么时候使用什么结构类型,什么时候使用什么常数。
    API函数声明 [返回]

    让我们回想一下。在VB中,如何声明函数呢?我想,如果你正在看此文,那么你绝对能够回答得出这个问题。以下便是你应该很熟悉的函数声明∶
    Function SetFocus (ByVal hwnd As Long) As Long
    即,这行代码定义了名为SetFocus的函数,此函数具有一个Long型数据类型的参数,并按值传递(ByVal),函数执行后将返回一个Long型数据。
    API函数的声明也很类似,如,API中的SetFocus 函数是这样写的∶

    Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
    有点复杂了一些。是的,是复杂了点。但我可以告诉你,除了这些多出来的部分,其他部分还是和你以前学到的东西是一样的。函数在程序中的调用也是一样。如:
    Dim dl As Long
    dl&=SetFoucs(Form1.Hwnd)
    但,一点是清楚的。它不象你自己写的程序那样能够看到里面的运行机理,也不像VB
    自带的函数那样,能够从VB的联机帮助中查到其用法。唯一的方法就是去学、查VB以外的资料。

    Declare 语句用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。对此,你只要记住任何API函数声明都必须写这个语句就可以了。
    Iib 指明包含所声明过程或函数的动态链接库或代码资源。也就是说,它说明的是,函数或过程从何而来的问题。
    如在上例中,SetFocus Lib "user32"说明 函数 SetFocus 来自 user32.dll文件。主要的dll动态连接库文件有∶
    user32.dll Windows管理。生成和管理应用程序的用户接口。

    GDI32.dll 图形设备接口。产生Windows设备的图形输出
    Kernel32.dll 系统服务。访问操作系统的计算机资源。
    注意,当DLL文件不在Windows或System文件夹中的时候,必须在函数中说明其出处(
    路径)。如,SetFocus Lib "c:/Mydll/user32"
    函数声明中的Alias 是可选的。表示将被调用的过程在动态链接库 (DLL) 中还有另外的名称(别名)。如,Alias "SetFocus" ,说明SetFocus函数在User32.dll中的另外一个名称是,
    SetFocus。怎么两个名都一样呢?当然,也可以是不同的。在很多情况下,Alias说明的函数名,即别名最后一个字符经常是字符A,如SetWindowsText函数的另一个名称是
    SetWindowsTextA,表示为Alias "SetWindowsTextA"。这个A只不过是设计家们的习惯的命名约定,表示函数属于ANSI版本。

    那 么,别名究竟有什么用途呢?从理论上讲,别名提供了用另一个名子调用API的函数方法。如果你指明了别名,那么 尽管我们按Declare语句后面的函数来调用该函数,但在函数的实际调用上是以别名作为首要选择的。如,以下两个函数(Function,ABCD)声 明都是有效的,他们调用的是同一个 SetFocus函数∶
    Declare Function SetFocus Lib "user32" "SetFocus" (ByVal hwnd As Long) As Long
    Declare ABCD SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long

    需要注意的是,选用Alias的时候,应注意别名的大小写;如果不选用Alias 时的时候,函数名必须注意大小写,而且不能改动。当然,在很多情况下,由于函数声明是直接从API
    文本游览器中拷贝过来的,所以这种错误的发生机会是很少的,但您有必要知道这一点。
    最后提醒你一句,API声明(包括结构、常数)必须放在窗体或模块的"通用(General Declarations)段。
    数据类型与"类型安全" [返回]

    API函数中使用的数据类型基本上和VB中的一样。但作为WIN32的API函数中,不存在Integer
    数 据类型。另外一点是在API函数中看不到Boolean数据类型。 Variant数据类型在API函数中是以Any的形式出现,如Data As Any。尽管其含义是允许任意参数类型作为一个该API函数的参数传递,但这样做存在一定的缺点。其原因是,这将会使得对目标参数的所有类型检查都会被关 闭。这自然会给各种类型的参数调用带来了产生错误的机会。

    为了强制执行严格的类型检查,并避免上面提到的问题,一个办法是在函数里使用上面提到到Alias技术。如对API函数 GetDIBits 可进行另外一种声明方法。如下∶
    GetDIBits函数的原型∶
    Public Declare Function GetDIBits Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
    GetDIBits函数的改型∶

    Public Declare Function GetDIBitsLong Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Long, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
    通过本课程前面所学到的知识,我们已经可以得知原型 GetDIBits函数也好,改型 GetDIBitsLong函数也好,实际将调用的都是Alias所指定的 GetDIBits原函数。但你应当看到,两者的区别在于,我们在改型的函数中强制指定lpBits参数为Long形。这样就会使得函数调用中发生的错误 机率减少到了最小。这种方法叫做"安全类型"声明。

    API函数中经常看到的数据类型有∶Long,String,Byte,Any....(也就这些吧。)
    常 数 [返回]

    对于API常数来讲,没有什么太特别的学问。请看VB中的以下代码∶
    Msg = MsgBox("您好", vbOKCancel)
    我们知道, vbOKCancel这个常数的值等于1。对上面的代码我们完全可以这样写,而不会影响代码的功能∶
    Msg = MsgBox("您好", 1)
    但你大概不太愿意选择后一种,因为这会使得看懂代码费劲起来。这种方法也被API采取了。只是API常数必须在事情之前做好初始化声明VB本身是看不懂的。其内容仍然来自与API
    文本游览器。具体形式如下等等∶

    Public Const ABM_ACTIVATE = &H6
    Public Const RIGHT_CTRL_PRESSED = &H4
    Public Const RPC_E_SERVER_DIED = &H80010007
    Private Const RPC_S_CALL_FAILED_DNE = 1727&
    在 常数的初始化中,有些程序使用Global,如Global Const ABM_ACTIVATE = &H6,但我认为Public完全可以代替它。过去我也用过Global,但现在不大用了。一会儿用这个,一会儿用那个,各程序之间不能保持一致 性了,起码看起来别扭。
    结 构 [返回]

    结构是C和C++语言中的说法。在VB中一般称为自定义数据类型。想必很多朋友都已经认识它。在API领域里,我更喜欢把它叫做结构,因为API各种结构类型根本不是我定义(
    自定义)的。
    在VB中,API结构同样由TYPE.......END TYPE语句来定义。如,在API中,点(Point)结构的定义方法如下:
    Public Type POINTAPI
    X As Long '点在X坐标(横坐标)上的坐标值

    Y As Long '点在Y坐标(纵坐标)上的坐标值
    End Type
    又如,API中矩形(Rect)结构的定义如下∶
    Public Type RECT
    Left As Long '矩形左上角的X坐标
    Top As Long '矩形左上角的Y坐标
    Right As Long '矩形右下角的X坐标
    Bottom As Long '矩形右下角的Y坐标 End Type
    这些内容同样可以从API文本游览器中拷贝过来。这些结构中的变量名可随意改动,而不会影响结构本身。也就是说,这些成员变量都是虚拟的。如,POINTAPI结构可改为如下∶
    Public Type POINTAPI
    MyX As Long '点在X坐标(横坐标)上的坐标值
    MyY As Long '点在Y坐标(纵坐标)上的坐标值
    End Type
    不过,一般来讲,是没有这种必要的。结构本身是一种数据类型,因此,使用时必须声明具体变量为该结构型,才能在程序中真正使用到该结构。结构的声明方法和其他数据的声明方法一样,如,以下语句把变MyPoint声明为POINTAPI结构类型∶

    MyPoint As POINTAPI
    引用结构中的成员变量也十分简单,在结构名后面加上一个".",然后紧接着写要引用的成员变量即可。这很象VB中的引用一个对象的某个属性。如,假如我们把上面已经声明的MyPoint结构中的X变量的值赋给变量Temp&
    则代码如下∶
    Temp&=MyPoint.X
    但,特别注意的是,你千万不要认为上例中的MyPoint是一个值。它不是值,而是地址(
    指针)。值和地址是完全不同的概念。结构要求按引用传递给WINDOWS函数,即所有API
    函 数中,结构都是按ByRef传递的(在Declare语句 中ByRef是默认型)。对于结构的传递,你不要试图采用ByVal,你将一无所获。由于结构名实际上就是指向这个结构的指针(这个结构的首地址),所 以,你也就传送特定的结构名就可以了(参见小结,我用红色字体来突出了这种传递方式)。

    由于结构传送的是指针,所以函数将直接对结构进行读写操作。这种特性很适合于把函数执行的结果装载在结构之中。
    小 结 [返回]

    以下的程序是为了总结本课中学到的内容而给出的。启动VB,新建一个项目,添加一个命令按钮,并把下面的代码拷贝到代码段中,运行它。

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI '定义点(Point)结构
    X As Long '点在X坐标(横坐标)上的坐标值
    Y As Long '点在Y坐标(纵坐标)上的坐标值
    End Type
    Sub PrintCursorPos( )
    Dim dl AS Long
    Dim MyPoint As POINTAPI
    dl&= GetCursorPos(MyPoint) '调用函数,获取屏幕鼠标坐标

    Debug.Print "X=" & Str(MyPoint.X) & " and " & "Y=" & Str(MyPoint.Y)
    End Sub
    Private Sub Command1_Click()
    PrintCursorPos

    End Sub

    输出结果为(每次运行都可能得到不同的结果,这得由函数调用时鼠标指针在屏幕中所处的位置而决定)∶
    X= 240 and Y= 151

    程序中,GetCursorPos函数用来获取鼠标指针在屏幕上的位置。

    以上例子中,你可以发现,以参数传递的MyPpint结构的内容在函数调用后发生了实质性变化。这是由于结构是按ByRef传递的原因。
    一些API函数集 [返回]

    Windows API

    1.控件与消息函数
    AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
    AnyPopup 判断屏幕上是否存在任何弹出式窗口
    ArrangeIconicWindows 排列一个父窗口的最小化子窗口
    AttachThreadInput 连接线程输入函数
    BeginDeferWindowPos 启动构建一系列新窗口位置的过程
    BringWindowToTop 将指定的窗口带至窗口列表顶部
    CascadeWindows 以层叠方式排列窗口
    ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄

    ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
    CloseWindow 最小化指定的窗口
    CopyRect 矩形内容复制
    DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
    DestroyWindow 清除指定的窗口以及它的所有子窗口
    DrawAnimatedRects 描绘一系列动态矩形
    EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
    EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
    EnumChildWindows 为指定的父窗口枚举子窗口

    EnumThreadWindows 枚举与指定任务相关的窗口
    EnumWindows 枚举窗口列表中的所有父窗口
    EqualRect 判断两个矩形结构是否相同
    FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
    FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
    FlashWindow 闪烁显示指定窗口
    GetActiveWindow 获得活动窗口的句柄
    GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
    GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息

    GetClassLong 取得窗口类的一个Long变量条目
    GetClassName 为指定的窗口取得类名
    GetClassWord 为窗口类取得一个整数变量
    GetClientRect 返回指定窗口客户区矩形的大小
    GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
    GetFocus 获得拥有输入焦点的窗口的句柄
    GetForegroundWindow 获得前台窗口的句柄
    GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
    GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息

    GetParent 判断指定窗口的父窗口
    GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
    GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
    GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
    GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
    GetWindowLong 从指定窗口的结构中取得信息
    GetWindowPlacement 获得指定窗口的状态及位置信息
    GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内

    GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
    GetWindowTextLength 调查窗口标题文字或控件内容的长短
    GetWindowWord 获得指定窗口结构的信息
    InflateRect 增大或减小一个矩形的大小
    IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
    InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
    IsChild 判断一个窗口是否为另一窗口的子或隶属窗口

    IsIconic 判断窗口是否已最小化
    IsRectEmpty 判断一个矩形是否为空
    IsWindow 判断一个窗口句柄是否有效
    IsWindowEnabled 判断窗口是否处于活动状态
    IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
    IsWindowVisible 判断窗口是否可见
    IsZoomed 判断窗口是否最大化
    LockWindowUpdate 锁定指定窗口,禁止它更新
    MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统

    MoveWindow 改变指定窗口的位置和大小
    OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
    OpenIcon 恢复一个最小化的程序,并将其激活
    PtInRect 判断指定的点是否位于矩形内部
    RedrawWindow 重画全部或部分窗口
    ReleaseCapture 为当前的应用程序释放鼠标捕获
    ScreenToClient 判断屏幕上一个指定点的客户区坐标
    ScrollWindow 滚动窗口客户区的全部或一部分
    ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分

    SetActiveWindow 激活指定的窗口
    SetCapture 将鼠标捕获设置到指定的窗口
    SetClassLong 为窗口类设置一个Long变量条目
    SetClassWord 为窗口类设置一个条目
    SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
    SetForegroundWindow 将窗口设为系统的前台窗口
    SetParent 指定一个窗口的新父
    SetRect 设置指定矩形的内容
    SetRectEmpty 将矩形设为一个空矩形
    SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID

    SetWindowLong 在窗口结构中为指定的窗口设置信息
    SetWindowPlacement 设置窗口状态和位置信息
    SetWindowPos 为窗口指定一个新位置和状态
    SetWindowText 设置窗口的标题文字或控件的内容
    SetWindowWord 在窗口结构中为指定的窗口设置信息
    ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
    ShowWindow 控制窗口的可见性
    ShowWindowAsync 与ShowWindow相似
    SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果

    TileWindows 以平铺顺序排列窗口
    UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
    UpdateWindow 强制立即更新窗口
    ValidateRect 校验窗口的全部或部分客户区
    WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口

    2.硬件与系统函数

    ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
    Beep 用于生成简单的声音
    CharToOem 将一个字串从ANSI字符集转换到OEM字符集
    ClipCursor 将指针限制到指定区域
    ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
    CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
    DestroyCaret 清除(破坏)一个插入符
    EnumCalendarInfo 枚举在指定“地方”环境中可用的日历信息

    EnumDateFormats 列举指定的“当地”设置中可用的长、短日期格式
    EnumSystemCodePages 枚举系统中已安装或支持的代码页
    EnumSystemLocales 枚举系统已经安装或提供支持的“地方”设置
    EnumTimeFormats 枚举一个指定的地方适用的时间格式
    ExitWindowsEx 退出windows,并用特定的选项重新启动
    ExpandEnvironmentStrings 扩充环境字串
    FreeEnvironmentStrings 翻译指定的环境字串块
    GetACP 判断目前正在生效的ANSI代码页

    GetAsyncKeyState 判断函数调用时指定虚拟键的状态
    GetCaretBlinkTime 判断插入符光标的闪烁频率
    GetCaretPos 判断插入符的当前位置
    GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
    GetCommandLine 获得指向当前命令行缓冲区的一个指针
    GetComputerName 取得这台计算机的名称
    GetCPInfo 取得与指定代码页有关的信息
    GetCurrencyFormat 针对指定的“地方”设置,根据货币格式格式化一个数字
    GetCursor 获取目前选择的鼠标指针的句柄

    GetCursorPos 获取鼠标指针的当前位置
    GetDateFormat 针对指定的“当地”格式,对一个系统日期进行格式化
    GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
    GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
    GetEnvironmentVariable 取得一个环境变量的值
    GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
    GetKBCodePage 由GetOEMCP取代,两者功能完全相同
    GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局

    GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
    GetKeyboardLayoutName 取得当前活动键盘布局的名称
    GetKeyboardState 取得键盘上每个虚拟键当前的状态
    GetKeyboardType 了解与正在使用的键盘有关的信息
    GetKeyNameText 在给出扫描码的前提下,判断键名
    GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
    GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
    GetLocaleInfo 取得与指定“地方”有关的信息

    GetLocalTime 取得本地日期和时间
    GetNumberFormat 针对指定的“地方”,按特定的格式格式化一个数字
    GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
    GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
    GetSysColor 判断指定windows显示对象的颜色
    GetSystemDefaultLangID 取得系统的默认语言ID
    GetSystemDefaultLCID 取得当前的默认系统“地方”
    GetSystemInfo 取得与底层硬件平台有关的信息

    GetSystemMetrics 返回与windows环境有关的信息
    GetSystemPowerStatus 获得与当前系统电源状态有关的信息
    GetSystemTime 取得当前系统时间,这个时间采用的是“协同世界时间”(即UTC,也叫做GMT)格式
    GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
    GetThreadLocale 取得当前线程的地方ID
    GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
    GetTimeFormat 针对当前指定的“地方”,按特定的格式格式化一个系统时间

    GetTimeZoneInformation 取得与系统时区设置有关的信息
    GetUserDefaultLangID 为当前用户取得默认语言ID
    GetUserDefaultLCID 取得当前用户的默认“地方”设置
    GetUserName 取得当前用户的名字
    GetVersion 判断当前运行的Windows和DOS版本
    GetVersionEx 取得与平台和操作系统有关的版本信息
    HideCaret 在指定的窗口隐藏插入符(光标)
    IsValidCodePage 判断一个代码页是否有效
    IsValidLocale 判断地方标识符是否有效

    keybd_event 这个函数模拟了键盘行动
    LoadKeyboardLayout 载入一个键盘布局
    MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
    MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
    MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
    mouse_event 模拟一次鼠标事件
    OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
    OemToChar 将OEM字符集的一个字串转换到ANSI字符集

    SetCaretBlinkTime 指定插入符(光标)的闪烁频率
    SetCaretPos 指定插入符的位置
    SetComputerName 设置新的计算机名
    SetCursor 将指定的鼠标指针设为当前指针
    SetCursorPos 设置指针的位置
    SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
    SetEnvironmentVariable 将一个环境变量设为指定的值
    SetKeyboardState 设置每个虚拟键当前在键盘上的状态
    SetLocaleInfo 改变用户“地方”设置信息

    SetLocalTime 设置当前地方时间
    SetSysColors 设置指定窗口显示对象的颜色
    SetSystemCursor 改变任何一个标准系统指针
    SetSystemTime 设置当前系统时间
    SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
    SetThreadLocale 为当前线程设置地方
    SetTimeZoneInformation 设置系统时区信息
    ShowCaret 在指定的窗口里显示插入符(光标)
    ShowCursor 控制鼠标指针的可视性
    SwapMouseButton 决定是否互换鼠标左右键的功能

    SystemParametersInfo 获取和设置数量众多的windows系统参数
    SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
    ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
    ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
    UnloadKeyboardLayout 卸载指定的键盘布局
    VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态

    3.菜单函数

    AppendMenu 在指定的菜单里添加一个菜单项
    CheckMenuItem 复选或撤消复选指定的菜单条目
    CheckMenuRadioItem 指定一个菜单条目被复选成“单选”项目
    CreateMenu 创建新菜单
    CreatePopupMenu 创建一个空的弹出式菜单
    DeleteMenu 删除指定的菜单条目
    DestroyMenu 删除指定的菜单
    DrawMenuBar 为指定的窗口重画菜单
    EnableMenuItem 允许或禁止指定的菜单条目
    GetMenu 取得窗口中一个菜单的句柄
    GetMenuCheckMarkDimensions 返回一个菜单复选符的大小

    GetMenuContextHelpId 取得一个菜单的帮助场景ID
    GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
    GetMenuItemCount 返回菜单中条目(菜单项)的数量
    GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
    GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
    GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
    GetMenuState 取得与指定菜单条目状态有关的信息
    GetMenuString 取得指定菜单条目的字串
    GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置

    GetSystemMenu 取得指定窗口的系统菜单的句柄
    HiliteMenuItem 控制顶级菜单条目的加亮显示状态
    InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
    InsertMenuItem 插入一个新菜单条目
    IsMenu 判断指定的句柄是否为一个菜单的句柄
    LoadMenu 从指定的模块或应用程序实例中载入一个菜单
    LoadMenuIndirect 载入一个菜单
    MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
    ModifyMenu 改变菜单条目

    RemoveMenu 删除指定的菜单条目
    SetMenu 设置窗口菜单
    SetMenuContextHelpId 设置一个菜单的帮助场景ID
    SetMenuDefaultItem 将一个菜单条目设为默认条目
    SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
    SetMenuItemInfo 为一个菜单条目设置指定的信息
    TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
    TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能

    以下是几个关于菜单函数的类型定义
    MENUITEMINFO 这个结构包含了菜单条目的信息
    TPMPARAMS 这个结构用于TrackPopupMenuEx函数以支持额外的功能

    4.绘图函数

    AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
    AngleArc 用一个连接弧画一条线
    Arc 画一个圆弧
    BeginPath 启动一个路径分支
    CancelDC 取消另一个线程里的长时间绘图操作
    Chord 画一个弦
    CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
    CloseFigure 描绘到一个路径时,关闭当前打开的图形
    CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄

    CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
    CopyMetaFile 制作指定(标准)图元文件的一个副本
    CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
    CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
    CreateEnhMetaFile 创建一个增强型的图元文件设备场景
    CreateHatchBrush 创建带有阴影图案的一个刷子
    CreateMetaFile 创建一个图元文件设备场景
    CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子

    CreatePen 用指定的样式、宽度和颜色创建一个画笔
    CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
    CreateSolidBrush 用纯色创建一个刷子
    DeleteEnhMetaFile 删除指定的增强型图元文件
    DeleteMetaFile 删除指定的图元文件
    DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放
    DrawEdge 用指定的样式描绘一个矩形的边框
    DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
    DrawFocusRect 画一个焦点矩形

    DrawFrameControl 描绘一个标准控件
    DrawState 为一幅图象或绘图操作应用各式各样的效果
    Ellipse 描绘一个椭圆,由指定的矩形围绕
    EndPath 停止定义一个路径
    EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
    EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
    EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
    ExtCreatePen 创建一个扩展画笔(装饰或几何)
    ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域

    FillPath 关闭路径中任何打开的图形,并用当前刷子填充
    FillRect 用指定的刷子填充一个矩形
    FlattenPath 将一个路径中的所有曲线都转换成线段
    FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
    FrameRect 用指定的刷子围绕一个矩形画一个边框
    GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
    GdiFlush 执行任何未决的绘图操作
    GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
    GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列

    GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
    GetBkColor 取得指定设备场景当前的背景颜色
    GetBkMode 针对指定的设备场景,取得当前的背景填充模式
    GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
    GetCurrentObject 获得指定类型的当前选定对象
    GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
    GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
    GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里

    GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
    GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
    GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
    GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
    GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
    GetMiterLimit 取得设备场景的斜率限制(Miter)设置
    GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色

    GetObjectAPI 取得对指定对象进行说明的一个结构
    GetObjectType 判断由指定句柄引用的GDI对象的类型
    GetPath 取得对当前路径进行定义的一系列数据
    GetPixel 在指定的设备场景中取得一个像素的RGB值
    GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
    GetROP2 针对指定的设备场景,取得当前的绘图模式
    GetStockObject 取得一个固有对象(Stock)
    GetSysColorBrush 为任何一种标准系统颜色取得一个刷子

    GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
    InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
    LineDDA 枚举指定线段中的所有点
    LineTo 用当前画笔画一条线,从当前位置连到一个指定的点

     
    展开全文
  • 什么是API?

    万次阅读 多人点赞 2018-06-27 15:45:34
    应用程序接口(API以编程语言提供的结构,允许开发人员更容易地创建复杂的功能。它们抽象出更复杂的代码,并提供一些简单的语法来使用。来看一个现实世界中的例子:想想您的房子、公寓或其他住宅的电力供应,...

    应用程序接口(API)是以编程语言提供的结构,允许开发人员更容易地创建复杂的功能。它们抽象出更复杂的代码,并提供一些简单的语法来使用。

    来看一个现实世界中的例子:想想您的房子、公寓或其他住宅的电力供应,如果您想在您的房子里使用一个设备,您只需把它插入到一个插座中;您并不会直接把它连接到电源上 - 这样做效率会非常低,而且如果您不是电工,这么做将是困难和危险的。


    同样,比如说,编程来显示一些3D图形,使用以更高级语言编写的API(例如JavaScript或Python)将会比直接编写直接控制计算机的GPU或其他图形功能的低级代码(比如C或C++)来执行操作要容易得多。

    客户端JavaScript中的API

    客户端JavaScript中有很多可用的API — 他们本身并不是JavaScript语言的一部分,却建立在JavaScript语言核心的顶部,为使用JavaScript代码提供额外的超强能力。他们通常分为两类:

    • 浏览器API内置于Web浏览器中,能从浏览器和电脑周边环境中提取数据,并用来做有用的复杂的事情 。例如Geolocation API提供了一些简单的JavaScript结构以获得位置数据,因此您可以在Google地图上标示您的位置。在后台,浏览器确实使用一些复杂的低级代码(例如C++)与设备的GPS硬件(或可以决定位置数据的任何设施)通信来获取位置数据并把这些数据返回给您的代码中使用浏览器环境;但是,这种复杂性通过API抽象出来,因而与您无关。
    • 第三方API缺省情况下不会内置于浏览器中,通常必须在Web中的某个地方获取代码和信息。例如Twitter API 使您能做一些显示最新推文这样的事情,它提供一系列特殊的结构,可以用来请求Twitter服务并返回特殊的信息。

    API可以做什么?

    常见浏览器API

    • 操作文档的API内置于浏览器中。最明显的例子是DOM(文档对象模型)API,它允许您操作HTML和CSS — 创建、移除以及修改HTML,动态地将新样式应用到您的页面,等等。每当您看到一个弹出窗口出现在一个页面上,或者显示一些新的内容时,这都是DOM的行为。 您可以在在Manipulating documents中找到关于这些类型的API的更多信息。
    • 从服务器获取数据的API 用于更新网页的一小部分是相当好用的。这个看似很小的细节能对网站的性能和行为产生巨大的影响 — 如果您只是更新一个股票列表或者一些可用的新故事而不需要从服务器重新加载整个页面将使网站或应用程序感觉更加敏感和“活泼”。使这成为可能的API包括XMLHttpRequestFetch API。您也可能会遇到描述这种技术的术语Ajax。您可以在Fetching data from the server找到关于类似的API的更多信息。
    • 用于绘制和操作图形的API目前已被浏览器广泛支持 — 最流行的是允许您以编程方式更新包含在HTML <canvas> 元素中的像素数据以创建2D和3D场景的CanvasWebGL。例如,您可以绘制矩形或圆形等形状,将图像导入到画布上,然后使用Canvas API对其应用滤镜(如棕褐色滤镜或灰度滤镜),或使用WebGL创建具有光照和纹理的复杂3D场景。这些API经常与用于创建动画循环的API(例如window.requestAnimationFrame())和其他API一起不断更新诸如动画和游戏之类的场景。
    • 音频和视频API例如HTMLMediaElementWeb Audio APIWebRTC允许您使用多媒体来做一些非常有趣的事情,比如创建用于播放音频和视频的自定义UI控件,显示字幕字幕和您的视频,从网络摄像机抓取视频,通过画布操纵(见上),或在网络会议中显示在别人的电脑上,或者添加效果到音轨(如增益,失真,平移等) 。
    • 设备API基本上是以对网络应用程序有用的方式操作和检索现代设备硬件中的数据的API。我们已经讨论过访问设备位置数据的地理定位API,因此您可以在地图上标注您的位置。其他示例还包括通过系统通知(参见Notifications API)或振动硬件(参见Vibration API)告诉用户Web应用程序有用的更新可用。
    • 客户端存储API在Web浏览器中的使用变得越来越普遍 - 如果您想创建一个应用程序来保存页面加载之间的状态,甚至让设备在处于脱机状态时可用,那么在客户端存储数据将会是非常有用的。例如使用Web Storage API的简单的键 - 值存储以及使用IndexedDB API的更复杂的表格数据存储。

    常见第三方API


    第三方API种类繁多; 下列是一些比较流行的你可能迟早会用到的第三方API:

    • The Twitter API, 允许您在您的网站上展示您最近的推文等。
    • The Google Maps API 允许你在网页上对地图进行很多操作(这很有趣,它也是Google地图的驱动器)。现在它是一整套完整的,能够胜任广泛任务的API。其能力已经被Google Maps API Picker见证。
    • The Facebook suite of API 允许你将很多Facebook生态系统中的功能应用到你的app,使之受益,比如说它提供了通过Facebook账户登录、接受应用内支付、推送有针对性的广告活动等功能。
    • The YouTube API, 允许你将Youtube上的视频嵌入到网站中去,同时提供搜索Youtube,创建播放列表等众多功能。
    • The Twilio API, 其为您的app提供了针对语音通话和视频聊天的框架,以及从您的app发送短信息或多媒体信息等诸多功能。

    展开全文
  • 什么是API接口,具体是什么意思?

    万次阅读 多人点赞 2019-02-19 22:36:34
    说到API,往往和SDK放在一起的。什么API,看一下餐厅里怎么点餐的就行了。 到了饭店,喊一场服务员,点餐。服务员拿出来菜单给你看,你点什么,她在小本本上记什么。点好了之后,再把菜单送到后厨去。这里服务员...
    说到API,往往是和SDK放在一起的。什么叫API,看一下餐厅里怎么点餐的就行了。
    

    到了饭店,喊一场服务员,点餐。服务员拿出来菜单给你看,你点什么,她在小本本上记什么。点好了之后,再把菜单送到后厨去。这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?点餐服务。
    点餐服务需要什么呢?谈一个服务,通常就是要谈输入是什么,输出又是什么。从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。有了输入和输出,服务员就可以提供了点餐的功能,这就是API顾客就是调用者,服务员就是服务的提供者。
    你可以在这里把服务员替换成猫猫,假设女王大人猫猫来给你提供服务,只要输出是菜品的名字,输出是菜品,这个API就是能够正常使用的。而且,所有的顾客都可以用这种方式来点菜 的再想想 ,是不是有的服务员手里拿的是点餐机? 想想一个漂亮的小姑娘,拿着一个和手机大小差不多的点餐机,这个点餐机,就是需要和后厨删除线格式 系统有交互,这种交互,就需要一种约束,来声明点菜功能的输入是什么,输出是什么。比如说,如果用户点了一道已经估清的菜,是不是服务员要告诉顾客一下?
    API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就

    可以来使用我。比如说,服务员是中国姑娘,顾客是美国人,没关系,只要美国人能说中国话,这套API就可以使用。如果美国人只会说英语,怎么办?让和美国人一起来吃饭的中国朋友翻译成中文,就可以了~~~~
    那么什么是SDK呢?当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。同样的,我们再把思维模式扩大一点。除了Http这种API,内部系统集成的组件,是否也是有API?你会发现,确实是这样的,比如说,JDK本身提供的各种API,在这里,API和SDK的概念没有那么清楚了,但是API本身的含义就是,当服务的提供方对外提供服务的时候,应该声明输入和输出和功能的明确含义。而一组组明确声明了的输入,输出和功能描述,就是服务方提供的各种API。比如说数组对外暴露的方法,链表对外暴露的方法等等。那么,API和方法之间有没有明显的区别呢?暴露出去的,可被公开使用的方法,统称为API~~~以上解释不够严谨,但是对于初学者来说,理解起来应该够了。如果你在理解API的时候有困难,大概问题并不是在API上,而是你有没有理解清楚什么叫做封装,什么叫做服务?

    展开全文
  • 什么是API接口

    千次阅读 2019-05-14 00:58:07
    API是指应用程序编程接口,我们通过API接口可以实现特定的功能,而不需要了解其内部实现细节。可以把API接口理解为特定服务的一种封装,将服务封装起来提供给他人调用,这样一来很多功能不需要从新开发。 举个...
  • 什么是API

    千次阅读 2018-06-09 18:03:37
    我遇到了很多人,他们都在科技和其他领域工作,对于这个相当常见的术语含义是什么,他们有一个相当模糊或不正确的理解。从技术上讲,API代表应用程序编程接口。在某种程度上,大多数大公司都会为其客户构建...
  • 什么是API?(看完你就理解了)

    万次阅读 多人点赞 2019-02-27 17:04:14
    API(Application Programming Interface,应用程序编程接口)一些预先定义的函数,目的提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。...
  • 什么是API?为什么要提供API?

    千次阅读 2015-07-09 10:26:42
    什么是API?为什么要提供API?  API(Application Programming Interface,应用程序编程接口) 是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数. ...
  • 1.什么是API? api接口开发,其实和平时开发逻辑差不多;但是也有略微差异; 平时使用mvc开发网站的思路一般是都 由控制器 去 调用模型,模型返回数据,再由控制器把数据放到视图中,展现给用户; api开发是:...
  • 新手上路:什么是API接口

    万次阅读 多人点赞 2018-09-11 15:15:00
    应用程序接口(API:application programming interface)一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能提供通用功能集。程序员通过使用 API 函数...
  • 什么是API接口平台?作用是什么?

    千次阅读 2019-09-14 14:10:41
    存在即合理,那么一个接口平台诞生的背景是什么,为了解决什么问题?怎么解决? 接口治理 系统A调用系统B,双方测试各种联调,终于有一天调通了。相约着一起上线,上线当晚量小看不出问题,第二天上量之后,一顿...
  • 毕竟我不是什么大神我只是爱看文章的程序猿。 首先呢让我唱响国际歌:起来饥寒交迫的程序员,起来全世界开发的人。好了别改变人家的歌词了。皮埃尔·狄盖特 的棺材板盖不住了。言归正传=======&gt; 随着软件...
  • 什么是API,说人话!

    万次阅读 多人点赞 2016-08-16 07:35:37
    我碰到很多人,无论在技术行业工作的还是其他,他们对API这个相当常见的名词的含义的理解有点模糊和偏差 严格的来说, API 代表:应用程序编程接口,在某些或其他方面,很多大型公司会建立自己的AP
  • API是什么

    千次阅读 2018-06-29 22:20:01
    API是什么API(应用编程接口)一组为应用程序呼叫某个功能和服务的函数。我们可以向API传送某些数据,然后获取到其处理后的数据。
  • 百度百科解释:API(Application Programming ...那么再通俗一点来说,API究竟是什么呢? 从技术角度来说,API指的应用程序编程接口。大多数大型企业都会为自己的客户建立应用程序编程接口,或供内部使用。 ...
  • 周末,你一个人闲来无事,又不想做饭,中午时感觉饿了,于是你打开美团开始点餐。点进一家店发现里面有很多菜,如农家...在上面的这个点菜过程中,你就使用了API(application programming interface),即应用程...
  • 什么是 API gateway 为什么要用 API gateway 后记 前言 一开始吧,感觉我也描述不好什么是 API gateway,在看了这篇文章(https://microservices.io/patterns/apigateway.html)之后,感觉豁然开朗,那么我这边就用...
  • API是一组作为应用程序呼叫某个功能与服务的函数。程序设计师可依据API函数撰写程序,让操作系统或某个程序激活某个程序以执行特定的功能。例如,WIN32 API就是Microsoft Windows 32位平台的应用程序接口。Windows ...
  • 什么是RESTful API?

    万次阅读 多人点赞 2018-12-25 16:01:42
    但是什么是RESTful API ?如何理解RESTful API 呢?请大家耐心读完这篇文章,相信您读完后一定会有一个更好的理解。我个人认为,要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST 全称:REpresentational ...
  • 什么是RESTful API

    万次阅读 多人点赞 2017-08-17 16:20:21
    要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST -- REpresentational State Transfer,英语的直译就是“表现层状态转移”。如果看这个概念,估计没几个人能明白是什么意思。那下面就让我来用一句人话解释...
  • 什么是REST API

    万次阅读 多人点赞 2018-11-22 18:48:19
    如果你看到这里,你以前可能听说过API 和REST,然后你就会想:“这些都是什么东西...什么是API? API是Application Programming Interface(应用程序接口)的缩写,它是拿来描述一个类库的特征或是如何去运用它。你个...
  • 什么是Java api

    千次阅读 2019-05-11 18:13:52
    API(Application Programming Interface,应用程序编程接口)一些预先定义的函数,目的提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。...
  • 什么是Maya API

    千次阅读 2012-05-09 11:11:50
    什么是Maya API Maya是一个具有开放性的产品,这意味着任何用户都能更改以存在的maya的功能特点或是增加全新的功能特点。你可以通过一下几种方法来更改maya: MEL™—(Maya Embedded Language) 一个强大而易学...

空空如也

1 2 3 4 5 ... 20
收藏数 47,147
精华内容 18,858
关键字:

什么是api