开放平台对满足OpenAPI 2.0规范的Swagger API提供快速创建服务的能力,并支持服务调用。本文介绍基于Swagger API发布服务和调用服务的流程。
前提条件
- 您需要提交工单,由CSB技术支持人员创建实例。
- 新建服务组 。
- 已存在Swagger API。本场景提供示例Swagger API,网址为 https://petstore.swagger.io/v2/swagger.json 。
背景信息
本场景提供的示例Swagger API,存在于公网环境。如果您需要使用示例Swagger API体验发布和调用服务,需要申请公网访问权限。
导入Swagger
-
在左侧导航栏单击 实例列表 。
-
在 实例列表 单击具体实例名称。
-
在 实例概览 页面左侧导航栏选择
。 -
在 我的服务 页面单击 导入Swagger 。
-
在 Swagger服务导入 页面的 导入Swagger 页签中选择导入方式,然后单击 加载 。
导入Swagger 参数说明:
参数 描述 备注 Swagger网址 swagger.json的网址,如 https://petstore.swagger.io/v2/swagger.json 。 您只需选择其中任一种导入Swagger的方式。本场景以 Swagger网址 的方式为例。 Swagger文件 本地的Swagger文件。 Swagger内容 复制粘贴的Swagger API内容。 如果您选择 Swagger网址 或者 Swagger API ,在 加载 后也会在 Swagger内容 显示内容。
-
加载Swagger完成后,单击 下一步 。
创建Swagger
-
在 Swagger服务导入 页面单击 创建Swagger 页签。
-
在 创建Swagger 页签中设置Swagger参数,然后单击 下一步 。
创建Swagger 参数说明:
参数 描述 选择Swagger 选择Swagger的配置。 - 如果是首次加载Swagger API,该值为 Swagger Petstore-新增 。
- 后续加载Swagger API,可以选择之前的Swagger配置,该值为 Swagger Petstore(BasePath的值) 。
Swagger名称 加载的Swagger API存在 Swagger名称 字段,支持自定义设置。 Swagger版本 加载的Swagger API存在 Swagger版本 字段,支持自定义设置。 接入端点 加载Swagger API后自动生成,不支持设置。 BasePath 服务名称的前缀,支持自定义设置。 负责人姓名 自定义设置负责人名称。 负责人邮件 加载的Swagger API存在 负责人邮件 字段,此处支持自定义修改。
导入服务
-
在 Swagger服务导入 页面单击 导入服务 页签。
-
设置接入协议。在基于Swagger API生成CSB服务场景中支持接入 RESTful 和 SpringCloud 协议。
-
当选择接入协议为
RESTful
时,需要
配置接入服务
参数。
配置接入服务 参数说明:
参数 描述 端点 RESTful服务地址。 加载Swagger API时默认生成 端点 值,您可根据需要修改 端点 值,修改后,对 发布服务 区域的所有服务生效。
-
当选择接入协议为
SpringCloud
时,需要设置
配置接入服务
参数。
配置接入服务 参数说明:
参数 描述 注册中心类型 要发布的服务所注册的注册中心类型。目前支持 Nacos 、 Eureka 和 EDAS注册中心 。 请根据实际情况选择注册中心类型。
注册中心地址 (适用于Nacos和Eureka注册中心) 注册中心的访问地址。 EDAS命名空间TID (适用于EDAS注册中心) EDAS命名空间对应的TID。可以在EDAS控制台的 命名空间 页面查看。 Spring Cloud服务名 所选注册中心注册的Spring Cloud服务名称。 说明 由于注册中心可能在VPC内部,csbConsole无法直接访问,故CSB控制台上无法直接展示注册中心内已有的Spring Cloud服务列表。Spring Cloud服务访问协议 根据实际情况选择服务访问协议,支持 HTTP 和 HTTPS 。
-
当选择接入协议为
RESTful
时,需要
配置接入服务
参数。
-
在 服务配置 区域设置服务基础参数。
服务配置 参数说明:
参数 描述 BasePath 服务名称的前缀,不可修改。 服务版本号 首次导入默认版本号 1.0.0 ,后续导入时默认显示已存在的版本号。 您可根据实际需要修改 服务版本号 ,修改后,对 发布服务 区域的所有服务生效。
超时时间 访问服务的超时时间,单位“ms”,默认值 3000 。 服务组 在下拉列表中选择已创建的服务组。 您可根据实际需要修改 服务组 ,修改后,对 发布服务 区域的所有服务生效。
公开访问 是否允许公开访问,默认开启。 - 关闭公开访问时,非服务发布者需要订购服务并通过审批后,才可以调用服务。
- 开启公开访问时,无需订购服务,可直接调用服务。
您可根据实际需要修改 公开访问 的状态,修改后,对 发布服务 区域的所有服务生效。
-
在 被占用服务 区域查看是否有被占用的服务。
说明 被占用的服务即是该服务在当前实例上,已经被其他用户发布,无法再次被发布。 -
在 发布服务 区域对单个服务进行 编辑 、 不导入 或者 删除 。
-
需要编辑单个服务的参数时,请单击目标服务后的
编辑
,设置完参数后单击
确认
。
编辑服务 参数说明:
参数 描述 超时时间 服务的超时时间,单位“ms”,默认值 3000 。 QPS 每秒钟访问服务的量。默认值 0 ,即不限制访问服务的量。 公开访问 是否允许公开访问,默认开启。 - 关闭公开访问时,非服务发布者需要订购服务并通过审批后,才可以调用服务。
- 开启公开访问时,即无需订购服务,可直接调用服务。
-
如果要不导入某个服务,请单击目标服务后的
不导入
,目标服务则会出现在
删除服务
区域。
如果需要恢复服务,可在 删除服务 区域单击目标服务后的 还原 ,目标服务则会出现在 发布服务 区域。
-
如果存在已经发布的服务,在该服务的操作列下有
删除
按钮。您可单击
删除
,该服务出现在
删除服务
区域。
如果需要恢复服务,可在 删除服务 区域单击目标服务后的 还原 ,目标服务则会出现在 发布服务 区域。
说明 删除服务即是注销服务。
-
需要编辑单个服务的参数时,请单击目标服务后的
编辑
,设置完参数后单击
确认
。
-
在 导入服务 页签右下角单击 完成发布 。
在基于Swagger API生成CSB服务场景中,发布的服务较多,发布时间较长,请耐心等待。 -
在服务发布详情提示框单击 确认 。
服务发布完成后,自动返回到 我的服务 页面,您可以查看所有服务信息。
调用服务
导入的Swagger API包含多个服务,本场景仅以调用 MyPetstore.findPetsByStatus 和 MyPetstore.getPetById 服务为例。
-
在左侧导航栏单击 实例列表 。
-
在 实例列表 页面单击目标实例的实例名称。
-
在 实例概览 页面左侧导航栏选择
。 -
在 我的服务 页面查找目标服务。
本场景以调用 MyPetstore.findPetsByStatus 和 MyPetstore.getPetById 服务为例。 -
调用 MyPetstore.findPetsByStatus 服务。
-
在 我的服务 页面单击 MyPetstore.findPetsByStatus 服务名称。
-
在 服务详情 页面 服务基本信息 区域,查看并记录服务访问地址。
本示例以展示RESTful服务访问地址为例: -
在 服务详情 页面 接入协议 区域,查看并记录入参信息。
MyPetstore.findPetsByStatus 服务的入参为status 。status 的取值信息请从Swagger API中获取,本示例的取值为 available 、 pending 和 sold 。 -
在浏览器地址栏输入服务访问地址,并在地址后加上入参取值,然后按 enter 键,界面返回服务详细信息。
服务访问地址为 http://CSB服务地址:8086/服务版本/服务名称?入参取值 ,各参数说明如下: - CSB服务地址即创建CSB实例时绑定的SLB的地址。
-
默认的访问端口为
8086 。 -
服务版本即该服务的版本号,如
1.0.0 。 - 服务名称在本示例中即是 MyPetstore.findPetsByStatus 。
-
入参取值即是服务的入参取值信息,如
status=sold 。
界面返回服务详细信息如下:
<pets> <category> <id>8128823</id> <name>Category</name> </category> <id>6812466</id> <name>Bob</name> <photoUrls> <photoUrl>www.petPhotos.com/1.jpg</photoUrl> <photoUrl>www.petPhotos.com/2.jpg</photoUrl> <photoUrl>www.petPhotos.com/3.png</photoUrl> </photoUrls> <status>sold</status> <id>308662</id> <name>Tag1</name> </tags> </pets>
-
-
调用 MyPetstore.getPetById 服务。
-
在 我的服务 页面单击 MyPetstore.getPetById 服务名称。
-
在 服务详情 页面 服务基本信息 区域,查看并记录服务访问地址。
本示例以展示RESTful服务访问地址为例: -
在 服务详情 页面 接入协议 区域,查看并记录入参信息。
MyPetstore.getPetById 服务没有入参。 -
在浏览器地址栏输入服务访问地址,并把 petId 修改为真实值,然后按 enter 键,界面返回服务详细信息。
服务访问地址为 http://CSB服务地址:8086/服务版本/服务名称/petId ,各参数说明如下: - CSB服务地址即创建CSB实例时绑定的SLB的地址。
-
默认的访问端口为
8086 。 -
服务版本即该服务的版本号,如
1.0.0 。 - 服务名称在本示例中即是 MyPetstore.getPetById 。
-
petId是通过调用
MyPetstore.findPetsByStatus
服务查询出来的结果,如
6812466 。
界面返回服务详细信息如下:
<Pet> <category> <id>8128823</id> <name>Category</name> </category> <id>6812466</id> <name>Bob</name> <photoUrls> <photoUrl>www.petPhotos.com/1.jpg</photoUrl> <photoUrl>www.petPhotos.com/2.jpg</photoUrl> <photoUrl>www.petPhotos.com/3.png</photoUrl> </photoUrls> <status>sold</status> <id>308662</id> <name>Tag1</name> </tags>
-