logo
1
0
Login
docs:修改说明不再支持自动获取

web demo

测试通过api自动获取cnb api server的地址,并设置proxy,测试成功啦

由于cnb业务端口访问策略的调整,此方法已不再适用,等cnb等新方法

测试步骤

1、启动后端服务

https://cnb.cool/ikunkun/demo/apiserver

2、启动本项目

pnpm dev

测试页面

原理

启动后端服务后,通过api获取后端服务的地址,替换前端proxy后启动前端页面

cnb 官方客户端ts语言版:https://cnb.cool/cnb/sdk/node-cnb

1、设置api密钥,并导入到前端项目

.cnb.yml:

imports: https://cnb.cool/yiqiu/dev.env/-/blob/main/webdemo/config.yml

2、获取CNB_PIPELINE_ID

通过后端项目名称和状态,获取到CNB_PIPELINE_ID,CNB_PIPELINE_ID是组成访问地址的唯一变量

关键代码:lib/devhelper.ts

const client = getClient(env.CNB_API_ENDPOINT|| "https://api.cnb.cool", env.CNB_API_TOKEN ||""); export const getApiServerBaseUrl = async ():Promise<DtoWorkspaceListResult> => { return client.Workspace.ListWorkspaces({slug:env.CNB_API_WORKSPACE||"",status: "running"}) }

3、替换proxy

关键代码:next.config.ts

const {list: [{ pipeline_id }, ...rest],} = await getApiServerBaseUrl(); async redirects() { return [ { source: "/api/:slug*", destination: `https://${pipeline_id}-8181.cnb.run/api/:slug*`, permanent: true, }, ]; },