管理API 变化之API version

REST API Versioning

本来对API分版号有个大概的印象,不外乎是逻辑、res 有了异动,但确切是为了什麽?又有哪些切版方式呢?我找到了这篇文章,读完之後,我理解到重点不是怎麽切,而是怎麽管理变动,又可以确保API 使用的一至性

以下为整理之重点

  1. 什麽时候要升API版本呢?

    重大变动时刻,包含以下三种情况

    • response 格式异动
    • request 格式异动
    • API 移除了任一部分

    其实开发过程中不免会有陆续的变动,但我想以上属於大致情况,我认为是当需求有所变动,而既有的API所提供的内容已经不敷使用、但又有一些情况会用到,那麽这时候可以选择切版,关键是 重大变动+有不能更新既有版本API的情况

  2. 有哪些方式可以升API 版本呢?

    1. URI (最常用情况,通常是v[x],x 为版号数字)
    2. Custom Request Header 客制化表头 (建立一专属表头,作为识别用)
    3. Accept Header (合并在 accept 表头中)

总结,其实怎麽做切版通常不是重点,因为就只是一个flag作为辨识用而已,但真的有挑战的是,多少的变动,应该切版,这个决策的过程,如作者提到的管理变动,让API呈现一至性的体验,不会因为升版,而倒置既API 出现问题


<<:  Day28,使用Dex、OIDC为你的Kubernetes再上一道锁 (1/2)

>>:  Day20-名称宇宙? 什麽是Namespace

Day25 [实作] 一对一视讯通话(5): 切换设备

如果我们的电脑有两个摄影机,就会有切换装置的需求,今天我们就来加入这个功能 在 index.html...

function :发生 JavaScript 严重错误\n\nSCRIPT1006: 必须要有 ')'

#取得Query String #取得URL的Query String https://127.0....

TypeScript 能手养成之旅 Day 12 泛用型别(Generics Types)

前言 今天要来介绍 泛用型别,在我们前面介绍的 型别化名 ,而 泛用型别 就是将 型别化名 参数化,...

食谱搜寻系统_新增资料excel档

为什麽要把资料建成Excel ? 由於这次资料量比Icebear在学习的时候多很多,所以决定先把资料...

#10 Web Crawler 3

我们今天要把 crawler 函式及 saveData 函式写好! crawler 函式 我们就依照...