启动并验证服务
配置文件就绪后,一条命令即可启动数据墙DBW 服务。
启动服务
在配置文件所在目录运行:
dab start服务启动后会输出类似以下信息:
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5000服务默认在 http://localhost:5000 上监听。如需指定配置文件路径,使用 --config 参数:
dab start --config ./settings/dab-config.jsonTIP
启动前建议先运行 dab validate 进行配置预检。该命令会检查配置语法、结构、权限和数据库连接,返回 0 表示通过,非 0 表示存在问题。提前预检可以避免盲目启动后排查。
开发模式与生产模式
--host-mode 参数控制服务的运行行为:
| 模式 | 适用场景 | 特性 |
|---|---|---|
Development | 本地开发、测试 | 启用 Swagger UI、详细错误信息、热重载 |
Production | 生产部署 | 关闭 Swagger、隐藏详细错误堆栈、启用响应压缩 |
生产环境务必使用 Production 模式,避免暴露接口文档和错误详情。
验证 REST API
用浏览器或 curl 访问实体对应的 REST 端点。以 Todo 实体为例:
curl http://localhost:5000/api/Todo预期返回 JSON 格式的数据,结构与数据库表一致:
{
"value": [
{ "id": 1, "title": "示例待办", "completed": false }
]
}如果返回空数组 { "value": [] },说明表中没有数据,或连接字符串指向了错误的数据库。
验证 GraphQL API
GraphQL 端点统一在 /graphql,所有请求使用 POST:
curl -X POST http://localhost:5000/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ todos { items { id title completed } } }"}'返回格式:
{
"data": {
"todos": {
"items": [
{ "id": 1, "title": "示例待办", "completed": false }
]
}
}
}你也可以用 GraphQL 客户端(如 Altair、Apollo Studio、Insomnia 等)直接连接 http://localhost:5000/graphql 浏览架构。这些工具提供自动补全和可视化界面,比命令行更友好。
浏览 Swagger 文档
开发模式下,数据墙DBW 自动提供 Swagger UI,可直接在浏览器中浏览和测试 API:
http://localhost:5000/swaggerSwagger 页面会列出所有可用的 REST 端点、参数和响应格式,方便开发调试。
健康检查
/health 端点返回服务整体状态,包括每个数据源和实体的连接状态:
curl http://localhost:5000/health响应示例:
{
"version": "1.7.0",
"currentRole": "anonymous",
"configuration": {
"hostMode": "Development",
"restEnabled": true,
"graphQLEnabled": true,
"mcpEnabled": false
},
"checks": [
{ "name": "data-source", "status": "Healthy", "duration": "00:00:00.1234567" },
{ "name": "Todo", "status": "Healthy", "duration": "00:00:00.0987654" }
]
}checks 数组中每个数据源和实体的 status 为 Healthy 表示数据库连接正常、实体配置正确。这个端点可以直接用作容器编排平台(Kubernetes、Docker Swarm)的存活探测和就绪探测地址。
用浏览器验证
如果不想用命令行,也可以直接在浏览器中验证 API:
- 打开浏览器访问
http://localhost:5000/api/Todo,查看返回的 JSON 数据。 - 访问
http://localhost:5000/swagger,浏览所有可用的 REST 端点并直接在页面上测试。 - 创建一个简单的 HTML 文件,用
fetch调用 API:
<!DOCTYPE html>
<html>
<body>
<h1>Todos</h1>
<ul id="list"></ul>
<script>
fetch('http://localhost:5000/api/Todo')
.then(r => r.json())
.then(data => {
const ul = document.getElementById('list');
data.value.forEach(todo => {
const li = document.createElement('li');
li.textContent = todo.title;
ul.appendChild(li);
});
});
</script>
</body>
</html>NOTE
如果 HTML 文件从本地文件系统打开(file:// 协议),需要确保配置中启用了 CORS("cors": { "origins": ["*"] }),否则浏览器会阻止请求。
清理环境
如果使用 Docker 运行了本地数据库,完成后可以停止并删除容器:
# SQL Server
docker stop dab-mssql && docker rm dab-mssql
# PostgreSQL
docker stop dab-postgres && docker rm dab-postgres
# MySQL
docker stop dab-mysql && docker rm dab-mysql常见问题
端口被占用
如果 5000 端口已被其他程序占用,可以通过运行时配置修改端口:
{
"runtime": {
"host": {
"mode": "development",
"urls": "http://localhost:5001"
}
}
}配置文件未找到
dab start 默认在当前目录查找 dab-config.json。如果文件位于其他目录或使用了其他名称,请用 --config 指定路径。
数据库连接失败
如果启动时报数据库连接错误,检查:
- 数据库是否正在运行且可访问。
- 连接字符串中的主机地址、端口、用户名和密码是否正确。
- 如果使用
@env(),环境变量是否已正确设置。
下一步
- 阅读配置架构参考 深入了解配置文件的完整字段。
- 阅读使用 REST API 了解各种语言的客户端调用示例。
- 阅读身份验证概述 为你的 API 配置访问控制。
