什么是API,开发人员该如何使用它们?
大家可能都看到过“API”的出现。操作系统、Web 浏览器和应用更新通常会为开发人员提供新的 API。那么什么是API,开发人员如何利用它们?
什么是 API?
API 是允许两个软件组件使用一组定义和协议相互通信的机制。
API 代表什么?
API 代表应用程序编程接口。在 API 环境中,应用程序一词指的是任何具有独特功能的软件。接口可以看作是两个应用程序之间的服务合约。该合约定义了两者如何使用请求和响应相互通信。它们的 API 文档包括与开发人员如何构建这些请求和响应有关的信息。
API 的工作原理是什么?
API 架构通常从客户端和服务器的角度来解释。发送请求的应用程序称为客户端,发送响应的应用程序称为服务器。以手机上的天气应用为例,气象局的天气数据库是服务器,而移动应用程序是客户端。
API的类型
如今,大多数应用程序编程接口都是通过互联网公开应用程序数据和功能的Web API。以下是四种主要类型的网络 API:
开放 API 是可以使用 HTTP 协议访问的开源应用程序编程接口。也称为公共 API,它们定义了 API 端点以及请求和响应格式。
合作伙伴 API 是向战略业务合作伙伴公开或由战略业务合作伙伴公开的应用程序编程接口。通常,开发人员可以通过公共 API 开发人员门户在自助服务模式下访问这些 API。尽管如此,他们仍然需要完成载入过程并获取登录凭据才能访问合作伙伴 API。
内部 API 是对外部用户保持隐藏的应用程序编程接口。这些私有 API 不适用于公司外部的用户,而是旨在提高不同内部开发团队之间的工作效率和沟通。
复合 API 组合多个数据或服务 API。这些服务允许开发人员在单个调用中访问多个终结点。复合 API 在微服务体系结构中很有用,其中执行单个任务可能需要来自多个源的信息。
API 让开发人员的生活更轻松
假设我们要为iPhone开发一个应用程序。Apple 的 iOS 操作系统提供了大量 API,就像其他所有操作系统一样,让开发人员能够更轻松地完成此操作。
如果我们想从iPhone的相机拍摄照片或视频,当然不可能编写自己的相机界面。我们可以使用相机 API 将 iPhone 的内建相机嵌入到自己的应用程序中。如果不存在API来简化这一过程,应用程序开发人员将不得不创建自己的相机软件并解释相机硬件的输入。
但苹果的操作系统开发人员已经完成了所有这些底层的工作,因此开发人员可以使用相机API嵌入相机,然后继续构建他们的应用程序。而且,当Apple改进相机API时,所有依赖它的应用程序都将自动随之改进。
同样,其他平台也有这样的操作。例如,想要在 Windows 上创建一个对话框?有一个API可以做到这一点。想要在安卓上支持指纹认证吗?也有一个专门的API,所以你不必测试每个不同的Android制造商的指纹传感器。开发人员不必一遍又一遍地重新造轮子。
API的应用场景
请求地址: API接口测试端
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
key | String | 是 | 调用key(必须以GET方式拼接在URL中) |
secret | String | 是 | 调用密钥 |
api_name | String | 是 | API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默认yes,将调用缓存的数据,速度比较快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读 |
lang | String | 否 | [cn,en,ru]翻译语言,默认cn简体中文 |
version | String | 否 | API版本 |
请求参数
请求参数:shop_id=433655136&page=1&sort=
参数说明: shop_id:shop_id page:页码
sort:排序[new,bid,sale]
(new 新品,bid:价格,sale:销量,bid加_前缀为从大到小排序)
响应参数
Version: Date:
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
num_iid |
Bigint | 0 | 579813460997 | 商品ID |
pic_url |
String | 0 | //img.alicdn.com/bao/uploaded/i3/478952498/O1CN011UK7q9WzgFGKQw8_!!478952498.jpg | 图片地址 |
title |
String | 0 | 英伦小皮鞋女复古2020秋冬新款网红毛毛鞋女百搭外穿粗跟中跟单鞋 | 店铺标题 |
orginal_price |
String | 0 | 398.00 | 优惠价 |
price |
Float | 0 | 148 | 价格 |
sales |
Int | 0 | 7 | 销量 |
detail_url |
String | 0 | //item.taobao.com/item.htm?id=579813460997 | 宝贝链接 |
请求示例
- Curl
- PHP
- PHPsdk
- JAVA
- C#
- Python
-- 请求示例 url 默认请求参数已经URL编码处理 curl -i "https://api-gw.onebound.cn/taobao/item_search_shop/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&shop_id=433655136&page=1&sort="
什么是API,开发人员该如何使用它们?相关推荐
- 亚马逊 新版卖家中心 销售伙伴API(amazon selling partner API)开发人员指南
文章目录 关于本指南 术语 什么是销售合作伙伴 API? 主要特点 全球应用 销售合作伙伴 API 端点 市场 ID 值 注册为开发者 检查您注册为开发人员的请求的状态 创建和配置 IAM 策略和实体 ...
- >>技术应用:用于 REST API 开发和测试的 10 大工具
前言 用于 REST API 开发和测试的 10 大工具 这些工具将在基于 REST 的项目(如设计.开发.测试和文档)的每个阶段为您提供帮助.如果您使用 Java 或任何其他编程语言创建 REST ...
- Web API 开发接口
体验式API InfoQ上,Jérôme Louvel(Restlet联合创立者和首席geek)曾经采访过Daniel Jacobson(Netflix公司edge工程团队副主席),他们讨论了Netf ...
- 还在重复造轮子?Java开发人员必知必会的20种常用类库和API
介绍 一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车.<Effective Java>的作者Joshua Bloch曾经说过:"建议使用现有的API来开发,而不 ...
- Java 开发人员必知必会的 20 种常用类库和 API
一.日志相关类库 日志库是很常见的,因为你在每一个项目中都需要他们.打印日志是服务器端应用中最重要的事情,因为日志是你了解你的程序发生了什么的唯一途径.尽管JDK附带自己的日志库,但是还是有很多更好的 ...
- 为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 API
2018 .NET开发者调查报告: .NET Core 是怎么样的状态,这里我们看到了还有非常多的.net开发人员还在观望,本文给大家一个建议.这仅代表我的个人意见, 我有充分的理由推荐.net 程序 ...
- java api 开发_Java开发人员应该知道的前20个库和API
java api 开发 优秀且经验丰富的Java开发人员的特征之一是对API的广泛了解,包括JDK和第三方库. 我花了很多时间来学习API,尤其是在阅读了Effective Java 3rd Edit ...
- Java开发人员应该知道的前20个库和API
优秀且经验丰富的Java开发人员的特征之一是对API的广泛了解,包括JDK和第三方库. 我花了很多时间来学习API,尤其是在阅读了Effective Java 3rd Edition之后 ,Joshu ...
- 昂首阔步:让开发人员喜欢使用您的REST API
随着JAX-RS API的发展,以及今年早些时候在JSR-339下发布的2.0版本,使用出色的Java平台创建REST服务变得更加容易. 但是,极大的简化带来了巨大的责任:记录所有这些API,以便其他 ...
最新文章
- mongodb java 学习_《 mongodb 学习 》java 基本操作
- 【Python教程】类及对象教程
- N Problems During K Days
- IntelliJ IDEA中Maven项目的默认JDK版本
- c++ 输出string_来讲讲Java中String 类的知识点
- android小程序:计算圆面积
- 网站锦囊(逐渐更新中)
- 与计算机相关的潜在健康风险是什么,医疗安全与风险管理.新.ppt
- 汽车汽配行业SaaS多租户系统助力车企打通行业壁垒,构建数字化管理平台
- php curl post 很慢,php的curl函数模拟post数据提交,首次速度非常慢的处理办法 | 学步园...
- 米尔格拉姆连锁信实验_连锁信:使客户对个性化电子邮件感到满意
- 比 Elasticsearch 更快,RediSearch + RedisJSON = 王炸
- 为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?
- 怎么做一个物流公司网站
- android没有捂脸表情,微信新emoji表情安卓机怎么没有?微信新emoji表情安卓机没有怎么回事?...
- 【超简单】之基于PaddleSpeech搭建个人语音听写服务
- 面试官推荐的刷题神器,适合所有程序猿
- 32位计算机内存最大多少,32位系统到底支持多大的内存呢
- 非随机参数估计的克拉美罗界(Cramer-Rao Bounds)
- 智能监控APP开发应用价值有哪些
热门文章
- 黑群晖使用pc端 Drive
- PotPlayer 和 VLC 播放器的书签
- 功能安全标准-ISO26262-3---概念阶段---ASIL(汽车安全完整性等级)等级确定方法
- Android——Activity的生命周期
- Oracle数据库的数据备份
- 算法思想理解系列 -- 检索排序学习之pairwise类型
- VPX信号处理板VPX3U-2DSP-C6678
- 【计算机网络】物理层 : 相关参数 ( 码元 | 码元进制 | 速率 | 码元传输速率 | 波特 | 信息传输速率 | 带宽 | 码元速率计算示例 )★
- CCSV5菜单栏中没有Tools按钮,如何显示出来?
- 华为Mate7-打开开发者选项