部署了一个应用,但swagger中没有信息

  • Choerodon平台版本:0.7.0

  • 运行环境(如localhost或k8s):k8s

  • 遇到问题时的前置条件:
    在k8s集群中 新建了一个 namespace,在这个namespace下 添加了 微服务开发框架 。
    可以访问新namespace下的swagger

  • 问题描述:
    1、在这个namespace下 部署了一个微服务应用,部署成功后,查看swagger ,发现里面没有新部署的应用信息。
    该新应用是使用 微服务模板 修改使用的。修改了CustomExtraDataManager这个类里面的信息。

2、发现swagger的Authorize功能不可用 ,点击Authorize按钮进行登陆页面,登陆后就报错了

iam 数据库执行下这个sql
update oauth_client set web_server_redirect_uri = ‘’ where name = ‘client’

swagger 授权OK了
怎么把我的微服务加到 swagger中

你指这里面?

是的

请问要怎么处理

本地开发的话比较简单,再manager-service数据库里面的route表加上自己的路由就行了,只需要填写name, path和service_id就行了。
如果是部署的服务,自己的微服务要加上如下的类和注解

@ChoerodonExtraData
  public class CustomExtraDataManager implements ExtraDataManager {
      @Override
      public ExtraData getData() {
          ChoerodonRouteData choerodonRouteData = new ChoerodonRouteData();
          choerodonRouteData.setName("manager");
          choerodonRouteData.setPath("/manager/**");
          choerodonRouteData.setServiceId("manager-service");
          extraData.put(ExtraData.ZUUL_ROUTE_DATA, choerodonRouteData);
          return extraData;
      }
  }

这样部署这个微服务会自动将route信息写入到route表里。
如果上面的类也加了,但是重新部署刷不出来路由,试一试手动调用添加路由的接口

以iam-service为例,post body如下:

{
  "name": "iam",
  "path": "/iam/**",
  "serviceId": "iam-service"
}

手动添加成功了。请问什么时候可以自动添加。
你给出的json有错误 service_id 应该是 serviceId

正常的情况是每次部署这个服务,都会发送消息刷新路由的,如果没刷出来,目前是手动调用这个接口


传服务名和对应的版本号,再请求一次刷新permission和route

一键部署脚本
GO_REGISTER_SERVER_VERSION=“0.7.1”
CHOERODON_FRONT_VERSION=“0.7.1”
OAUTH_SERVER_VERSION=“0.7.1”
换成0.7.1试试