实现 API 调用接口

摘要:
API的特点一个明确定义的接口,可以为其他软件提供特定服务。API的实现是私有的,也可以是开源的。客户端向服务器发送一个请求服务器给客户端一个响应,告诉客户端是否可以完成它请求的工作HTTP请求包含的内容URL、请求方式、Headers(请求头)、BodyHeaders(请求头)提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体的大小、身份认证等信息。
实现 API 调用接口

API 简介

API 的概念

API(Application Programming Interface)

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

API 的特点

  • 一个明确定义的接口,可以为其他软件提供特定服务。
  • 可以小到只包含一个单独的函数,也可以大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等。
  • 可以小到只包含一个单独的函数,也可以大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等。
  • API 的实现是私有的,也可以是开源的。

API 的分类

  • 面向对象语言的 API

    例:Java API 列表

  • 库与框架的 API

    例:Windows API、Windows DirectX

  • API 与协议

    例:LDAP 应用程序接口

  • API 与设备接口

    例:PC BIOS 调用接口、ASPI for SCSI 设备接口

  • Web API

    例:Google 地图 API、新浪微博 API、阿里云 API 市场

为什么要使用 API

  • 快速扩展功能
  • 避免“造轮子”,提高开发效率
  • 降低模块之间的耦合度

API的请求与认证

Web API 协议及 HTTP 请求

好处:客户端与服务端的开发语言无关,利于微服务和分布式的开发。

  • 客户端向服务器发送一个请求
  • 服务器给客户端一个响应,告诉客户端是否可以完成它请求的工作

HTTP请求包含的内容

URL(API调用地址)、请求方式、Headers(请求头)、Body(请求主体)

  • Headers(请求头)

    提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体的大小、身份认证等信息。

  • Body(请求主体)

    包含了客户端希望发送给服务器的数据。

API 请求方式

常见的主要有四种:

  • GET 请求服务器获取一个资源
  • POST 请求服务器创建一个新的资源
  • PUT 请求服务器编辑或更新一个已存在的资源
  • DELETE 请求服务器删除一个资源

返回状态码

  • 成功调用 API 后会有返回一个状体码,例如成功返回 2xx;
HTTP 状态码含义
200 OK - [GET]服务器成功返回用户请求的数据
204 NO CONNTENT - [DELETE]用户数据删除成功
......
  • 未调用成功,会返回 5xx 表示服务不可用;

    例如:500 API 网关内部错误/底层服务错误;503 服务不可用,504 后端服务超时。

返回数据格式

  • json 格式(多采用)

    • 表示对象,键值对类型

      {"name":"a","age":20}
      
    • 表示数组,采用方括号

    • 如下:

{
    "code":2000,
    "data":[
        {
            "name":"a",
            "age":19
        },
        {
            "name":"b",
            "age":20
        }
    ]
}
  • xml 格式
<?xml version="1.0" encoding="utf-8" ?>
<country>
    <name>中国</name>
    <province>
        <name>河南</name>
    </province>
    <province>
        <name>广州</name>
    </province>
</country>

API 身份认证及签名认证

  • API 有不同的认证方式

再阿里云中,有两种认证方式

  • 简单认证,基于 APPCODE 方式

    如果 APPCODE 获取 API 访问权限

    • 请求头 Header 添加 Authorization 字段;
    • 配置 Authorization 字段的值为 “APPCODE + 半角空格 + APPCODE 值”

    例子:

    Authorization:APPCODE 123456789ABC
    
  • 签名认证方式,AppKey & AppSecret

    AppKey 和 AppSecret 相当于当前账户的另外一套账号和密码机制,再控制台找到对于的 AppKey 和 AppSecret

    具体使用方式在调用时会有官网介绍。

API 调试和调用(阿里云)

API 调试

阿里云 api 市场提供在线调试功能

API 调用步骤

获取 api 文档--创建应用--获取授权--调用 api

调用 API

调用 api 三个基础条件:

  • api
  • 应用 app
  • api 和 app 的权限关系

API 调用注意事项

  • 每个账号下 APP 的个数上限为10个,app 名称应用为账号下唯一
  • 调用 api 的流控限制为,单个 ip,qps 不超过100
  • 用户有权操作购买的 api 与 app 的授权和解除授权.由服务提供方授权给你的 app 的api,用户无权操作解除授权
  • 请求需要包含签名信息

免责声明:文章转载自《实现 API 调用接口》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python爬虫入门教程 51-100 Python3爬虫通过m3u8文件下载ts视频-Python爬虫6操作DBGrid支持鼠标滚轮滚动的解决办法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows8 游戏开发教程一、Metro UI 和绘图

仔细想了想,叫做教程似乎不太合适,应该算作一种讨论。 windows 8 已经玩了一段日子,相信大家对Metro UI已经不陌生了。 Metro UI的介绍 我想很简单就可以带过了。 首先是布局方式,采用XAML布局,虽然外观看起来简单过了头,这是从zune 和wp7 那里继承来的风格。 没有窗口概念,取而代之的是Page。下一层次是控件,容器控件可以放子...

php使用curl方法请求java接口

CURL是一个非常强大的开源库,支持很多协议,我们可以使用curl方法解决PHP请求JAVA接口直线导轨滑台 1.通过POST方法请求java接口: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 functionhttp_post_advertise($...

Nacos 认证绕过

Nacos 介绍 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 漏洞成因: 1、未授权访问接口...

java~使用枚举来实现接口的多态

java的enum类型,与C#不一样,它就是一个类,它可以实现接口,并且,可以通过的不同的枚举值来实现一个接口,这就是枚举的多态性。 下面的例子,在Hello接口有方法print,在枚举Strategy中,通过不同的枚举值分别实现了Hello接口,如下代码 enum Strategy implements Hello { CHINA()...

(转)仅供个人学习-接口测试工具:jmeter、postman、soapUI的区别

1.  用例组织方式 首先是用例组织方式的不同,不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式。 SoapUI的组织方式如下图,最上层是WorkSpace,每个窗口只可以打开一个WorkSpace(这是一个xml文件),每个Project也是一个单独的xml文件(为了协同工作,也可以通过设置将其转化为一堆文件集合),...

Windows平台Python编程必会模块之pywin32

在Windows平台上,从原来使用C/C++编写原生EXE程序,到使用Python编写一些常用脚本程序,成熟的模块的使用使得编程效率大大提高了。 不过,python模块虽多,也不可能满足开发者的所有需求。而且,模块为了便于使用,通常都封装过度,有些功能无法灵活使用,必须直接调用Windows API来实现。 要完成这一目标,有两种办法,一种是使用C编写Py...