# 从选题到发布前检查

这个教程只使用合成内容。

## 1. 查看初始草稿

```bash
curl http://127.0.0.1:8088/api/drafts \
  -H "X-WM-Admin-Token: $WM_ADMIN_TOKEN"
```

首次启动会看到一条标注为合成数据的示例。

## 2. 创建草稿

```bash
curl -X POST http://127.0.0.1:8088/api/drafts \
  -H "Content-Type: application/json" \
  -H "X-WM-Admin-Token: $WM_ADMIN_TOKEN" \
  -H "X-WM-CSRF: $WM_CSRF_TOKEN" \
  -H "Origin: http://127.0.0.1:8088" \
  --data '{"title":"示例：工程概念如何变成读者收益","content":"先给结论，再解释机制与使用边界。"}'
```

## 3. 发布前 dry-run

把 `<ID>` 替换为草稿编号：

```bash
curl -X POST http://127.0.0.1:8088/api/drafts/<ID>/publish \
  -H "X-WM-Admin-Token: $WM_ADMIN_TOKEN" \
  -H "X-WM-CSRF: $WM_CSRF_TOKEN" \
  -H "Origin: http://127.0.0.1:8088"
```

正确结果必须包含：

```json
{"status":"dry_run_checked","draft_id":1,"sent":false}
```

`sent=false` 是硬边界，不代表真实发布成功。

## 4. 验证安全门

删除 `X-WM-CSRF` 再执行写请求，应返回 403。把 Origin 改成不在白名单的域名，也应返回 403。管理令牌错误时返回 401，响应不会回显任何秘密。
