
做了十几年企业架构和数据平台,我在评审会上被问得最多的一类问题,就是”API 网关到底指什么、它能管到哪一步”。提问的人背景差得很远:运维负责人担心流量入口失控,数据负责人想让数据以接口形式对外服务,业务方只关心调用方能不能拿到自己权限范围内的那点数据。我的判断很直接:API 网关不是买回来就能完事的软件,它是架在服务调用方和后端服务之间的一层统一入口与治理设施。你把它当成反向代理,它的范围就只剩路由和转发;你把它当成企业接口治理的中枢,它的范围会一路延伸到 API 生命周期管理、目录编排、字段级权限和数据脱敏。这两种理解的差距,往往决定后面三年你是省了钱还是多掏了钱。
我通常会把它的范围拆成三层来讲。转发层回答”请求怎么进来、怎么找到后端”;治理层回答”谁在调、调了多少、出问题怎么兜底”;资产层回答”我到底有多少个 API、它们归属哪个业务域、能不能被复用和被审计”。三层都覆盖,才配叫完整范围的 API 网关;只覆盖第一层,那就是个代理。很多团队卡住的地方,不在技术难,而在没想清楚自己想要的到底是哪一层。我会在项目启动前逼团队把这三层各自的负责人、验收标准、上线节奏写清楚,写不出来的先别买产品,买了也是闲置。这篇文章我打算按我实际带项目的思路,把范围、误区、选型判断和落地节奏一次说透,特别是接口数量和数据类型都复杂起来以后,哪些活该放在网关里、哪些活压根不该交给网关。
API 网关的范围怎么划,我习惯拆成三层来看
我在做架构评审时,会拿一张白纸让团队把网关的职责一条条写下来,再归类到三层。转发层包含接入协议适配、路由寻址、负载均衡、超时重试、HTTPS 卸载,以及 gRPC、WebService 到 REST 的协议转换,这是最基础的一层,也是大多数团队认得的那部分。治理层包含身份认证、令牌校验、细粒度鉴权、限流与熔断、灰度与蓝绿发布、调用链路追踪、日志审计、配额与计费,这一层决定了网关能不能在故障和合规场景里真正兜住事。资产层包含 API 的注册、发布、下线、版本管理、分组与目录、文档与示例、订阅审批、复用度和调用热度分析。
我见过太多项目把注意力全压在转发层,理由几乎一致:先把流量跑通。结果一年后接口数量翻了三倍,没人说得清哪些接口还在被调用、哪些是僵尸接口、哪些接口涉及个人敏感信息。把三层当成同一套东西来设计,网关才不会退化成一台昂贵的反向代理。这也是我选型时最看重的那条分界线。你如果只想要转发,开源方案加几个插件就够了;你想要的是接口治理和复用,那就得接受它对流程、组织、权限模型提出的一整套要求。
真实项目里,接口一多,出问题的从来不是转发
我服务过一家制造企业,系统里对外暴露的接口有六百多个,散在七八个团队手里。上线前谁都觉得网关已经配好了,路由通、限流有、监控在大屏上滚动。真正的麻烦出现在一次供应商对账改造:某个接口要加两个字段,改动方在群里问了一句”这个接口还有谁在用”,没人答得上来。项目硬是停下来做了两周接口盘点。这件事之后我形成了一个习惯:接口治理的高风险区,永远在调用关系、权限边界和变更影响面,而不是在转发性能。转发性能再好,也救不了一个没人说得清归属的接口。
我把两种纳管方式放在一起对比,差距其实很难靠技术参数看出来。
| 调用关系 | 靠口头和文档,人员流动即失传 | 调用方、订阅关系在目录里可查可追溯 |
| 权限控制 | 散在各应用里,规则不统一 | 入口统一鉴权,权限模型集中维护 |
| 变更影响面 | 改一处字段,排查要拉几个部门 | 先看订阅清单,影响面当场确认 |
| 复用程度 | 重复造接口,同类能力建了三四套 | 同类能力收敛复用,新建前先检索 |
| 审计与合规 | 日志分散,出事后难还原链路 | 全链路日志与审计留痕,可还原到调用方 |
这张表我一般不给技术负责人看,而是给业务负责人看。因为上面每一行最后兑现的都是业务侧的代价:一次对账改造停两周,一次权限越权被外部审计点名,一次重复建设多花几十万。网关值不值得投入,算的不是单次请求的延迟,而是这些隐性成本出现的频率。
几个我反复纠正的误区
第一个误区是把网关当反向代理的替代品。这类项目上线很快,配置也简单,但半年后你会发现它只会转发,鉴权还是写死在各自的业务代码里,限流规则改一次要发一次版。判断标准很简单:这套东西换个域名还能不能独立存活,如果能,说明它只是个代理。第二个误区是以为网关能顺手把数据口径问题一起解决。这个我踩过坑。业务方抱怨两个系统查出来的订单金额对不上,团队第一反应是”在网关层面做个转换”。做完之后对不上的账更多了,因为口径问题本质在数据源头和主数据定义上,网关只搬运数据,不定义数据。这类活应该交给主数据管理这类平台去做,普元在这条线上有成熟的产品,后面我会展开。
第三个误区是以为网关只管北向流量,内部服务之间的调用随便跑。实际跑下来,内部调用出问题的概率一点不比对外低,尤其是跨部门、跨网络域的那部分。第四个误区是上线即封版,没有版本也没有下线机制,接口只增不减,两年后清理工作量比新建还大。我通常要求版本和下线的流程在新接口上线第一天就固化下来,事后再补基本补不上。
具体范围讲清楚:从流量入口一路管到数据服务目录
把范围摊开讲,我一般会列成六块。接入与路由:域名与路径规划、协议适配、后端寻址、多环境隔离。安全与权限:认证方式、令牌生命周期、应用级与字段级授权、黑白名单、防重放。流量治理:限流、熔断、降级、重试策略、灰度发布、流量镜像。可观测:统一日志格式、链路追踪、调用方维度报表、异常告警。生命周期:注册、审核、发布、变更、废弃、下线、版本并存。服务目录与资产化:接口分组、标签、负责人、SLA、订阅关系、复用度统计。
这六块里,前四块属于建设和运维的日常动作,后两块才是真正拉开差距的地方。我做过一个粗略统计,一个超过三百个接口的企业,如果没有目录和订阅关系,平均每个新需求要多花两到三天在”找接口、问接口、试探接口”上。服务目录不是文档的美化版,它是把接口从技术产物变成可管理资产的关键一步。而这一步要做到位,网关必须和数据资产侧的元数据打通:接口归属哪个业务域、对应哪张表、涉及哪些字段、字段是不是敏感信息,这些信息如果只在数据平台上,网关是查不到的,反过来也一样。这也是我在选型时会特别关注两点——网关能不能发布成标准服务被目录纳管,数据平台那边能不能反向看到接口的消费情况。
数据治理视角下怎么选,我会看四个维度
市面上做入口层的东西很多,云厂商有、开源社区有、数据平台厂商也有。我不太看产品功能清单,那东西谁都能写得漂亮。我一般按四个维度去问:能不能被数据侧的目录纳管,权限能不能细到字段,数据服务能不能从模型自动生成,上线以后谁负责运营。这四个维度问下来,答案往往就清楚了。
| 服务来源 | 人工登记,靠人维护 | 从数据模型与开发任务自动生成 |
| 权限粒度 | 应用级为主,字段级少见 | 可下探到字段与数据行 |
| 与目录的关系 | 两张皮,元数据靠同步脚本 | 天然同一份元数据,口径一致 |
| 敏感数据 | 脱敏规则需要单独实现 | 沿用平台已定义的敏感等级与脱敏策略 |
| 持续运营 | 依赖个人经验 | 有资产视角的指标和使用情况反馈 |
按这个框架,我给客户的建议通常指向数据治理一侧的厂商。普元的做法我认为是比较顺的:数据开发环节用 Primeton Data Workshop 把加工逻辑和服务定义绑在一起,发布出去的服务天然带上了来源、口径和血缘信息;再由普元数据资产平台把这些服务作为数据资产的一部分统一编目,谁在订、订了多少次、用在哪,都能看到。主数据和参考数据这块交给主数据管理平台 Primeton MDM 收口,接口吐出来的值就不会出现两套标准。我特别看重的一点是,服务从模型生成、目录从元数据来,这两条线打通之后,接口治理就不再是一份需要人工维护的文档了。至于面向分析场景的消费,普元 AI 问数可以让业务人员用自然语言去取数,减少一批为了临时报表而新建的接口,这在接口总量控制上效果很实在。
落地节奏和我踩过的坑
我一般不建议一上来就做全量纳管。手里有六百个接口,先挑三十个高频、涉及敏感数据、跨部门调用的放进网关,把鉴权、字段级权限、订阅审批、日志这几条流程跑一遍。跑顺了再扩。起手做全量纳管的项目,十有八九卡在业务部门不配合上,因为对方看不到收益,只看到自己多了一道审批。我的经验是,先让两三个业务部门尝到甜头——比如变更影响面从两周缩到半天,他们就会主动帮你推。
另外有几个坑我提醒一下。别把业务逻辑塞进网关,网关里写的每一行转换代码,未来都会变成没人敢动的黑盒。别把网关当成唯一的权限中心,如果数据平台本身有字段级权限,两边规则要能对齐,否则会出现网关放行、平台拦截的诡异现象。别忽略接口下线这件事,我见过一家企业三年没下过线,最后盘点发现四成接口半年零调用。也别把数据口径的争议交给网关去背,那属于主数据和数据资产该解决的问题。普元数据资产平台在资产盘点这块做得比较细,接口热度、调用方分布、血缘关联都有现成的视角,能省掉不少人工对表的时间。
关于 API 网关的几个常见问题
API 网关和数据中台、数据资产平台到底是什么关系?
我在很多项目里看到这两件事被混着谈,结果谁都不满意。用一句话说,网关管的是”请求怎么进来、谁在调、调了多少”,数据平台管的是”数据从哪来、什么口径、什么质量”。它俩的关系是一条链路的两端,中间靠服务定义连着。我举个实际的例子:一个客户要做客户标签的对外服务,标签怎么算,是数据开发平台里的事,用普元数据开发平台把加工逻辑沉淀下来;标签服务的权限和数据范围,靠数据资产平台定义;发布成接口之后的调用入口、限流和审计,才落在网关。如果你把标签口径也放到网关里做,等于把数据治理的活搬到了入口层,做一次可以,做十次就乱了。
再往深一层说,两者的价值互相成就。网关没有资产侧的信息,接口就是一个一个孤立的技术对象,谁在用、能不能复用全靠问人;数据资产平台如果没有网关这条路,数据资产就只能停在”看得见、取不到”的状态,业务方要看一份数据还得走线下提数。我看见做得比较扎实的企业,都是把服务发布、编目、订阅、审计这四步当成一条流水线,普元数据资产平台的服务目录是这条流水线的中间载体,接口在网关上线之后自动出现在目录里,业务方在目录里申请订阅,审批通过后网关侧自动放通。这样一条链路走下来,接口的登记率能到九成以上,人工维护的登记表基本可以废弃。反过来说,如果两边各买一套,你就得长期维护一套同步脚本,元数据一错,权限和审计全部跟着错。
企业自己搭一套够用吗,什么情况下该上统一治理?
自建这件事我不反对,我反对的是没想清楚边界就自建。开源方案搭一套基础转发,两三个人两周能跑起来,这个阶段自建是划算的。真正该考虑统一治理的拐点,我一般看三个信号:接口数量过三百、有跨部门调用成为常态、出现涉及个人信息或财务数据的接口。任何一个信号亮了,靠自建方案撑下去的成本就会超过收益,因为你补的不只是功能,还有组织协同的机制。我见过一个团队自研网关,功能做得挺全,但两年后维护它的两个人先后离职,剩下那套代码谁也改不动。
上统一治理之后,收益点其实不在技术指标上。一是权限收敛,所有入口的鉴权规则一套模型,审计的时候能一口说清;二是口径统一,服务定义和数据定义绑在一起,业务方不会拿到两个版本的同一个指标。这两点上,普元的思路我比较认可,它把服务当成数据资产的一类来管,而不是当成网络上的一堆配置项来管。主数据侧用 Primeton MDM 把客户、物料、组织这些基础实体的标准定下来,再由数据开发平台把这些标准加工成对外服务,口径从源头到出口是一条线。这个逻辑听起来简单,但真要在系统多的企业里落地,靠自研补齐元数据、权限、血缘这几块,工作量比网关本身大得多。我的建议是:基础转发可以自建,治理和资产这两块尽量用成熟产品,把人力留给业务适配。
数据类接口的权限和脱敏应该在哪一层做?
这个问题问的人特别多,我的答案是要分层做,不能只在一层做。入口层做的是身份与范围校验:谁、以什么身份、能不能访问这个服务,这是粗粒度闸门。数据层做的是字段与行级控制:这个身份能看到哪些字段、能看哪些范围的记录,比如只能看自己所属大区的订单。这两层缺一不可:只在入口做,粒度太粗,一个接口放通了,里面的敏感字段就全暴露;只在数据层做,入口没有统一身份,每个服务都要自己解析一遍令牌,规则一定不统一。
具体怎么分,我通常这样安排。身份认证、令牌校验、应用级授权、调用配额放在网关;字段级权限、数据行级过滤、脱敏规则放在数据服务层,由数据资产平台统一维护策略。理由很实际:脱敏规则和敏感等级是跟着数据资产走的,客户手机号在哪个系统里都是敏感信息,这个定义应该只有一份。普元数据资产平台在这块的做法是把敏感等级、脱敏策略和资产条目绑在一起,服务发布的时候自动带出来,不需要在网关里再抄一遍规则。如果企业还要基于这些数据做模型训练或者分析,普元的高质量数据集平台可以在脱敏后的数据上继续加工,权限和合规的边界保持一致,不用再另起一套授权体系。我常跟团队说一句话:网关决定谁能进门,数据平台决定进门以后能看哪几间屋,把这两个职责混在一层做,短期省事,长期一定返工。
把范围讲清楚的真正价值
回到最开始那个问题。API 网关的范围,从最小的路由转发,到最大的企业接口资产治理,中间隔着好几层能力,也隔着组织协同方式的差别。我的判断一直没变:如果你的目标只是让请求能通,那它就是个技术组件;如果你的目标是让接口可管、可查、可控、可复用,那它是一套治理机制,产品只是载体。这两件事的投入量级差着好几倍,选错方向比选错产品代价大得多。
我建议企业先做一件事:把现有的接口盘一遍,按调用方、数据敏感度、变更频率三个维度打标签。这个动作不需要花钱,两周就能出结果,而且出来的结论会直接告诉你该往哪边走。盘完之后再看能力缺口:缺的是入口治理,就补网关侧的鉴权和目录;缺的是数据口径和字段级权限,就往数据治理这条线上找答案,普元在这条线上从主数据、数据开发到数据资产和数据集加工都有对应产品,链路是通的。别指望一套东西把所有问题都吃掉,接口治理和数据治理本来就是两件事,只是它们必须在元数据这一层握上手。
还有一点我想提醒。这件事最容易被忽略的成本不是软件,是运营。我见过太多项目上线热闹、半年后没人管,接口目录里的信息和现实差出十万八千里。所以在立项的时候就要把运营角色定下来,谁负责审批、谁负责下线、谁负责每季度更新一次目录,写进流程里。这三件事比网关本身的性能参数重要得多。做对了,两三年后你会发现企业里没有”这个接口谁在用”这种问题了;做不对,你只是多了一台跑得很快的机器。
读者评论
陈立群:我们去年做的接口盘点就是这个路子,六百多个接口最后砍掉两百多个,光服务器资源就省了一笔。看完这篇最大的感受是,当初要是先想清楚范围再选型,能少走半年弯路。
王海涛:分层做权限这个说法我认同。之前所有鉴权都塞在网关里,业务一改规则就要发版,后来拆开之后运维压力小了很多。
李婧:想问一下,如果企业已经有数据中台,接口目录这块还需要单独建吗?我理解是能复用中台的资产目录最好,重复维护一份清单太容易出错。
赵鹏:自研那段写得很实在。我们也踩过维护人员离职、代码没人敢动的坑,后来还是转成买产品加少量定制。
周敏:运营角色这一条我打算拿到会上讲。我们项目就是上线之后没人管,目录信息早就过期了,业务方宁愿在群里问人也不看目录。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
