本文分享自天翼云开发者社区《OpenAPI 简介》,作者:蔡****钊

一、什么是open API

API的全称是应用编程接口(Application Programming Interface),而所谓的open API其实就是一种面向客户的开放接口能力,而对应的客户,从我们以往常规认知的个人产品直接使用用户,变为技术用户。正如很多SaaS是提供具体的某个直接可使用的服务或者能力,open API则是将产品接口化提供类似PaaS类的技术能力。

二、常见的open API能力

你也许觉得open API的能力离我们很远、你也许觉得我们手机上使用的很多应用就是当前使用app 对应的厂商提供的。实际上,他们只是调用底层平台提供的开放平台能力做接入,并实现的。如:

1.地图类

说起地图,相信大家生活中肯定都离不开。比如常用的高德地图做导航,这是最直观的应用。当渗透如我们生活方方面面的还有比如各类打车软件、外卖平台、甚至基于地图的二手交易平台、交友平台等等。这类平台本身不具备地图能力,都是通过调用第三方平台提供的地图能力,对地图进行展示、基于地图能力对车辆所在点、路线等进行叠加的渲染。甚至我们熟知的谷歌地图,也开放了丰富的地图能力。

2.搜索类

搜索类国内最有名的无非是百度、搜狗等平台。他们提供的搜索接口,可以帮助平台站点建立搜索功能,或者对搜索结果进行排序封装。国外典型的例子如google search API, yahoo search API等。

使用方也有如小红书,知乎等,早期可能大家没有搜索能力都会去调用搜索开放平台能力,但平台做大了也可能自己搭建搜索团队。

3.文字资讯类

RSS订阅接口可以成为几乎所有文字资讯类服务的标准API,如各类资讯网站和论坛等。但随着订阅类型的产品逐步减少,这类产品和能力也逐渐减少。但也还有许多专有的API提供专有的文字资讯类服务,例如twitter的API、craigslist的API、豆瓣的API等。

4.用户及关系类

国内最大的社交平台不外乎我们熟知的两大社交软件。其提供的各类分享和好友关系能力,也让很多营销工具、社交玩法有了基础根基。也正是有这些开放平台,让此两个社交软件成为各种涉及大众吃喝玩乐方方面面的应用,都能在这两棵大树上生根发芽,从而也让这两棵大树的根基更加地稳固。

5.电子商务类

此类网站主要围绕企业信息和商品信息展开设计。开放此类接口地目的是为了让外部平台使用获利,从而提高电商网站的用户粘性和销量。最典型的有京东的京粉平台,拼多多的多多进宝。这两个平台提供类似“淘客”的分销分佣模式。当内容或者社交平台有自己的用户时,可以通过电商平台的接口调用展示商品,和提供跳转购买链路。当普通用户通过他们的渠道购买后,平台就能获得电商网站的分佣激励。

6.注册类

还有一类时所有人绕不开但却很不起眼的能力,就是最基础的登录注册能力。包括运营商提供的短信验证码服务,真人图形校验,实名验证等等。

三、挑战

挑战1:选择API设计模式

当你在考虑单个产品的API表现形式时,首先会选择一种具体的API风格,常见的有Remote Procedure Call和 Rest-Oriented Architecture两种模式。不同模式选型意味着后续基础的不同。是最基础的能力决策。

挑战2:面向资源设计

特别对于使用api来访问云服务的过程,本质上是对某种云资源执行特定的操作来完成业务动作。关键在于:

一是要有比较统一的资源模式,才便于进行特定的鉴权。二是要明确资源关系,便于关联鉴权。

挑战3:设计风格

包括如API名称、参数名、属性名、数据格式、错误码等等,都决定了其对外用户使用的风格。要保证命名规范统一、对外易于理解。

挑战4:服务端容错

容错对于业务来说非常重要。你永远无法预测到业务上下游会出现什么情况,对于边界或者异常的场景,都要能做到容错处理,保证业务不会奔溃。

挑战5:版本管理

对于版本迭代中,最最重要的是平滑切换。无论是对老业务接口的兼容,还是新接入的业务,都要能做到兼容平滑。否则对老客户的伤害可能会直接导致我们的业务口碑崩坏。

当然,在做开放平台API时,会遇到更多挑战。但作为to B 的业务,一定要有最强的服务意识,本着给用户提供更优质服务的心,相信就能应对各类挑战!

OpenAPI 简介的更多相关文章

  1. Kubernetes官方java客户端之六:OpenAPI基本操作

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. 云计算平台简介(App Engine)

    云计算平台简介(App Engine)     1   简介 App Engine: 应用程序引擎,是托管网络应用程序的云计算平台. 1.1  什么是云 云计算通常简称为“云”,是一种通过 Inter ...

  3. 阿里云短信验证_基于阿里云OpenAPI实现

    阿里云短信服务 背景简介: 短信验证以及短信通知,目前已经应用的非常广泛,最近因项目需要,需要将原来的短信接口换成阿里云的的短信服务,原项目集成的短信服务能够实现短信的发送以及短信的验证整个过程,简单 ...

  4. 搭建个人OpenAPI

    简介 OpenAPI Open API 即开放 API,也称开放平台. 所谓的开放 API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列 API(Applica ...

  5. 使用Dapr和.NET 6.0进行微服务实战:Dapr简介

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 本文是<使用Dapr和.NET 6.0进行微服务实战>的第2篇Dapr ...

  6. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  7. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  8. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  9. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  10. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

随机推荐

  1. Sickos1.1 详细靶机思路 实操笔记

    Sickos1.1 详细靶机思路 实操笔记 免责声明 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力.请在合法合规的前提下使用本文中提供的任何技术.方法或工具.如果您选择 ...

  2. 详解 Eclipse 中的快速 Java 编码(代码模板)

    http://hi.baidu.com/twlk28/blog/item/f3ca4d905f1c6696a877a462.html 简介: Eclipse 提供了通过定义和使用代码模板来提高工作效率 ...

  3. LinkedHashMap源码分析(基于JDK1.6)

    LinkedHashMap类似于HashMap,但是迭代遍历它时,取得"键值对"的顺序是插入次序,或者是最近最少使用(LRU)的次序.只比HashMap慢一点:而在迭代访问时反而更 ...

  4. MySQL底层概述—4.InnoDB数据文件

    大纲 1.表空间文件结构 (1)表空间Tablesapce (2)段Segment (3)区Extend (4)页Page (5)行Row 2.Page结构 (1)页结构各部分说明 (2)页结构整体划 ...

  5. 超详细 HarmonyOS 开发教程之开发环境搭建指南

    HarmonyOS开发环境搭建指南:DevEco Studio安装教程 一.系统要求 操作系统:Windows 10 64位或更高版本 RAM:至少8GB,推荐16GB 硬盘空间:至少10GB可用空间 ...

  6. 有关终端Github无法访问,connection timed out:443等问题

    有关终端Github无法访问,connection timed out:443等问题 SSL_connect: Operation timed out in connection to github. ...

  7. 如何在Linux上使用pbcopy和pbpaste命令

    由于 Linux 和 Mac OS X 是基于 *Nix 的系统,因此许多命令可以在两个平台上运行.但是,某些命令可能在两个平台上都没有,比如 pbcopy 和 pbpast.这些命令仅在 Mac O ...

  8. Qt音视频开发43-采集屏幕桌面并推流(支持分辨率/矩形区域/帧率等设置/实时性极高)

    一.前言 采集电脑屏幕桌面并推流一般是用来做共享桌面.远程协助.投屏之类的应用,最简单入门的做法可能会采用开个定时器或者线程抓图,将整个屏幕截图下来,然后将图片传出去,这种方式很简单但是性能要低不少, ...

  9. Qt开发经验小技巧151-155

    当Qt中编译资源文件太大时,效率很低,或者需要修改资源文件中的文件比如图片.样式表等,需要重新编译可执行文件,这样很不友好,当然Qt都给我们考虑好了策略,此时可以将资源文件转化为二进制的rcc文件,这 ...

  10. Qt开源作品3-串口调试助手

    一.前言 这个作品很多年前就做了,经过了长达七八年的完善,当然也不是全身心的投入完善,也就是根据实际项目的需求不断完善的,尤其是模拟设备回复数据的功能,这个在很多用Qt做上位机开发非常实用,毕竟很多软 ...