发布API服务就是把一个已有的后端服务在某个CSB实例上注册,并以选定的一种或多种协议开放成API供消费者使用,同时对服务的消费做一定的访问控制。即包含如下三个关键概念:
接入服务:提供API对应的后端服务信息,让CSB能访问到这个已有的服务
开放服务:指明API开放的协议,以及开放的接口和后端服务接口如何对应
访问控制:指明API开放的策略,是否限流,对谁可见,访问是否需要授权
发布概念
1. 创建API分组
发布API必须指定归属API组(服务组),如果当前用户还没有任何API组,控制台会引导用户转到我的服务组页面创建API分组。
发布-服务组列表
API组是业务上的原子粒度分组,每一个API都归属且仅归属一个API组。用户可以创建多个API组,每个API组都应提供负责人信息,可以上传一个服务接口定义文件,以方便发布服务时直接从这个接口定义文件选择接口方法自动生成入参出参列表。
上传的接口定义文件需要以jar方式提供,包含定义API所用的接口类以及所有依赖的参数类。在这个jar文件中还要提供一个接口声明列表文件META-INF/api.list。内容格式如下面的示例:
# 包含2个服务接口 ServiceInterfaceC 和ServiceInterfaceD
a.b.c.ServiceInterfaceC
a.b.d.ServiceInterfaceD
# 注释掉的服务接口
#a.b.e.ServiceInterfaceE
注意:上传的jar包编译TARGET版本必须为1.7或以下版本。
2. 命名服务
发布API首先要确定服务的全名和别名。别名随意,但全名在CSB群组上是唯一的,在注销服务后可以复用。发布API还需要指定所归属的服务组(API组),在API数量少时API组可视作简单分类。服务说明信息是可选的,可以填写API的详细描述或者其它说明信息。
发布服务-命名
服务版本说明
CSB发布服务时指定的版本信息是该服务的CSB发布版本,与现有服务本身版本无关,不会在CSB访问后端服务时使用该信息。
CSB服务版本指的是该API在CSB上的定义版本。
同名的API可以多个不同版本的定义,可以指定某个版本为当前激活的状态。
CSB目前不并支持多个版本同时激活,目前只有以特定协议(如HTTP API)调用该API时需要明确指明调用的API版本。
3. 选择协议
现在需要提供要接入的已有后端服务的协议,并确定以什么协议开放成API。开放的协议可以多选,针对不同的接入协议类型,CSB支持的可开放协议类型是有限制的。不同的接入协议类型,CSB需要的服务接入信息也不同。目的很简单,就是让CSB可以访问要接入的已有后端服务。
发布服务-协议
4. 设定参数
在参数设置中,除了一条一条地录入,后端服务的入参和出参列表可以通过之前在API组(服务组)中上传的接口定义文件中选择对应的接口和方法来生成,然后再做适当修改。
发布服务-参数
每一个入参都可以选择是否在API中开放,如果不开放但又是后端服务必要的入参,需要指定缺省值。参数的编辑支持平级插入(向下的三角箭头)和缩进插入(向右的三角箭头),也支持数组、列表、集合等类型,可以定义复杂的多级结构。
可以输入服务自己的错误代码列表,给服务的使用者参考。还可以指定服务的模拟返回结果,当用户以模拟方式调用时不会真的调用后端接口,直接返回模拟结果。
5. 限制访问
发布API时可以指定这个API能接受的访问频度限制,即每秒最多调用次数。还可以指定这个API是否不需要授权就可以访问,以及谁可以看到并订购消费该API,即所谓的API可见域(可见域的功能暂未生效)。
发布服务-控制
6. 发布服务
最后一步将之前输入的服务信息综合起来展示,确认无误后即可执行发布。
发布服务-确认
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。