写点什么

为了不干扰客户,LinkedIn 发布 API 版本化框架

  • 2022-09-01
    北京
  • 本文字数:825 字

    阅读完需:约 3 分钟

为了不干扰客户,LinkedIn发布API版本化框架

最近,LinkedIn 透露了他们如何为 LinkedIn Marketing API 构建API版本化框架,允许外部合作伙伴按照自己的节奏迁移到新版本的 API。

 

在这个新框架中,每个 API产品都通过一个为外部合作伙伴提供 API 的中间层公开其版本化的模型和 API。中间层 API 和模型通过特定的版本向外部公开,用户可以按照自己的节奏迁移到新版本。

 

遗留的架构由各种业务线构建的后端 API 组成,并通过Rest.liAPI网关对外公开。由于这些 API 没有版本控制,所有为内部 API 实现的东西都会直接暴露给外部用户。

 

这篇文章解释道:“未版本化的 API 阻碍了用户访问最新的特性,并给内部开发新特性带来了挑战。此外,开发者的反馈表明,我们在短时间内发布了太多 API 变更,打乱了他们的计划。”

 LinkedIn 构建了新的框架,基于特定版本公开模型和 API 变更,从而有效地将外部应用程序的变更隔离开,并允许合作伙伴按照自己的节奏迁移到新版本。

 

每当外部应用程序请求特定的 API 版本时,API 网关将对请求进行转换,并将其转发到适当的中间层。

 

与其他 API 网关一样,这个架构中的 API 网关带有身份验证、请求映射、节流控制、授权、反滥用控制和请求调度功能。

 

最终,中间层将后端实现的特性公开给外部应用程序。

 

每个 API 产品只有一个中间层。



同一逻辑资源的不同版本可以在中间层中共存,并在代码中维护这个引用。网关使用请求映射调用所需的资源版本。

 

中间层的服务负责从业务线调用后端与版本无关的服务。如果中间层服务在代码中维护特定于版本的逻辑,则可能会导致代码维护问题。为了避免这种情况,团队构建了“版本执行框架”库,用于完成这两件重要的事情——通过用户定义的转换将请求转换为最新的可能版本;请求被转换为最新的可能版本后,将再次通过用户定义的内部模型转换器将其转换为最新可用的内部模型。

 

这一实现凸显了 LinkedIn“不干扰客户”的设计原则。

 

随着版本化的 LinkedIn Marketing API 于 2022 年 6 月发布,开发者和合作伙伴可以使用这些稳定的 API。

 

原文链接

The LinkedIn Way of Building API Versions

 

2022-09-01 08:004310

评论

发布
暂无评论
发现更多内容

5分钟搞懂Monorepo

俞凡

git 架构

018云原生之基础架构

穿过生命散发芬芳

云原生 10月月更

CPU、指令集、微架构概念学习

轻口味

10月月更

【产品】论增长黑客思维如何让B端产品爆发式增长

极光一号。

云原生 用户增长 b端产品经理 增长黑客

【设计模式】第四篇 - 简单工厂

Brave

设计模式 工厂模式 10月月更

【LeetCode】环形链表Java题解

Albert

算法 LeetCode 10月月更

linux【redhat&ubuntu】下ffmpeg-3.1安装编译及视频转码

程序员架构进阶

架构 ffmpeg 视频流 10月月更

初始化 Ubuntu 工作环境

看山

ubuntu 10月月更

linux之awk使用技巧

入门小站

Linux

Linux system hardening: adding hidepid to /proc mount point

卓丁

Linux linux security proc hidepid

Spring 框架学习

风翱

spring 10月月更

官方线索|科大讯飞全球1024开发者节

xcbeyond

1024我在现场

分布式文件存储系统Minio实战

飞鸟

Minio 分布式文件存储

博鳌亚洲论坛国际科技与创新论坛第二届大会区块链分论坛紧密筹备中

时空云

区块链 博鳌 亚洲论坛

Prometheus 基础查询(四)修饰符

耳东@Erdong

Prometheus 10月月更

【架构实战营作业】模块五——微博评论计算架构

聆息

WEB图像优化

devpoint

性能优化 image 图像格式 10月月更

在线字符串哈希/散列工

入门小站

工具

API网关Kong实战

飞鸟

kong api 网关 API Gateway

Kafka 生产环境部署指南

Se7en

Minio环境搭建

飞鸟

Minio 分布式文件存储

区块链将规则写入代码 重构市场新制度

CECBC

人工智能解决方案 --- 智能运维(AIOps)

micklongen

人工智能 AIOPS 知识图谱 智能运维 数据工程

【Flutter 专题】133 图解自定义 ACEWaterButton 水波纹按钮

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

Gas 机制是如何运作的

Rayjun

以太坊

趣说 Node.js 的事件循环

Regan Yue

node.js Regan Yue 10月月更

微博评论高性能高可用计算架构设计

看,有只猪

👊 【Spring技术特性】带你看看那些可能你还不知道的特性技巧哦!

洛神灬殇

Java spring Spring特性 10月月更

未来已来,运营商如何驱动区块链应用创新提速?

CECBC

Win11安装PyTorch

IT蜗壳-Tango

10月月更

Go 扇入 / 扇出

baiyutang

golang 10月月更

为了不干扰客户,LinkedIn发布API版本化框架_语言 & 开发_Tanmay Deshpande_InfoQ精选文章