# jt-axios-tools

Axios SDK package inside the workspace.

## 本地联调代理

微前端子应用在宿主页面里运行时，相对路径请求会落到宿主页面域名。需要让少量接口走子应用本地 dev server 代理时，可以在实例上配置本地代理 origin：

```ts
import { createAxios } from "@jt-home/jt-axios-tools";

export const http = createAxios({
  baseURL: "/api",
  localProxyOrigin: "http://localhost:9000",
  localProxyPrefix: "/api-local",
});
```

`localProxyOrigin` 是子应用本地 dev server 地址；`localProxyPrefix` 只是这个 dev server 上 proxy 的匹配入口，不是后端接口前缀。真实后端地址仍然放在子应用自己的 proxy 配置里。

业务请求只标记是否走本地代理：

```ts
http.post("/hrpt/demo", data, {
  local: true,
});
```

最终请求会改写为：

```txt
http://localhost:9000/api-local/api/hrpt/demo
```

真实本地后端地址建议放在子应用 Vite proxy 中：

```ts
server: {
  cors: true,
  proxy: {
    "/api-local": {
      target: "http://127.0.0.1:9005",
      changeOrigin: true,
      rewrite: (path) => path.replace(/^\/api-local/, ""),
    },
  },
}
```

单次请求可以用 `localApi` 覆盖默认本地代理 origin。这里的 `localApi` 指向子应用 dev server，不直接指向后端本地服务：

```ts
http.post("/hrpt/demo", data, {
  local: true,
  localApi: "http://localhost:9010",
});
```
