You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apiary无法调用本地服务器接口,请求跳转至远程地址求助

Apiary Preview 无法调用本地API服务器的解决方法

问题原因

Apiary Preview 默认不会直接转发请求到本地API服务,未配置时会将请求发送到Apiary远程管理服务器(https://jsapi.apiary.io/apis/null/http-transactions/),该服务器不存在你的本地API资源,因此返回404错误。

解决步骤

1. 在API Blueprint中配置本地服务地址

在你的docs/api.apib文件开头添加HOST指令,指定本地dart-frog服务的基础URL:

FORMAT: 1A
HOST: http://192.168.0.1:8080

# NewstoolKit API
# 以下是你的API定义内容
...

配置后,Apiary会将所有"Call Resource"的请求转发到这个地址。

2. 启动Apiary时启用本地代理模式

如果上述HOST配置未生效,启动Apiary时添加--mock参数,强制启用本地代理:

apiary preview --path docs/api.apib --watch --port=8090 --host=0.0.0.0 --mock

该参数会让Apiary直接代理请求到你定义的HOST地址,而非远程服务器。

3. 配置dart-frog的CORS支持

由于Apiary运行在8090端口,本地服务在8080端口,跨域请求会被浏览器拦截。需要在dart-frog中添加CORS中间件:
在项目的main.dart中修改middleware:

import 'package:dart_frog/dart_frog.dart';
import 'package:dart_frog_web_socket/dart_frog_web_socket.dart';

Handler middleware(Handler handler) {
  return handler
      .use(requestLogger())
      .use(cors(
        allowedOrigins: ['http://192.168.0.1:8090'],
        allowedMethods: ['GET', 'POST', 'PUT', 'DELETE'],
        allowedHeaders: ['Content-Type'],
      ));
}

这样可以允许Apiary页面发起的跨域请求访问本地服务。

完成以上配置后,点击Apiary中的"Call Resource"即可正常调用本地dart-frog的API接口。

内容的提问来源于stack exchange,提问作者puzzled

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:38:16