台站

台站(Station)

目录

台站资源用于管理你的台站位置(日志配置档案)——一条 QSO 所记录的呼号、网格、DXCC 及其他位置信息。它复用了与 Web 界面相同的数据层,并应用相同的规范化与校验规则。

  • 基础路径: /api/v2/station
  • 权限范围: station:read, station:write, station:delete
  • 起始版本: 3.1.0

所有操作都限定在令牌所有者范围内。属于其他用户的台站位置会被视为未找到。

注意

请先阅读 API v2 概览,了解认证、响应包络与错误码。

端点

方法 路径 权限范围 用途 起始版本
GET /api/v2/station station:read 列出你的所有台站位置 3.1.0
GET /api/v2/station/{id} station:read 获取单个台站位置 3.1.0
POST /api/v2/station station:write 创建台站位置 3.1.0
PATCH /api/v2/station/{id} station:write 部分更新 3.1.0
DELETE /api/v2/station/{id} station:delete 删除台站位置及其全部 QSO 3.1.0

注意(不支持 PUT)

更新始终是部分更新,原因与 QSO 上相同:Wavelog 是权威数据源,而完全替换会让客户端把它根本不知道存在的字段清空。要完整覆盖一个台站位置,请在 PATCH 中显式发送每个字段。

列表类端点不进行分页——用户通常只有少数几个台站位置。

注意(列表遵循你的账户选项)

如果在你的账户设置(台站位置选项)中启用了「只显示与活动日志关联的台站位置」,GET /api/v2/station 就只会返回与你的活动日志关联的位置——即 Web 界面和 API v1 所显示的同一子集。这是一个列表偏好设置,而非权限:GET /api/v2/station/{id}、PATCH 和 DELETE 对你拥有的每个位置仍然有效,无论它是否出现在列表中。

台站对象

{
  "id": 1,
  "uuid": "c8904ea7-8bfa-11f1-865b-0241724b0b31",
  "name": "JO30oo / DJ7NT",
  "callsign": "DJ7NT",
  "gridsquare": "JO30OO",
  "city": "Bonn",
  "dxcc": 230,
  "country": "FEDERAL REPUBLIC OF GERMANY",
  "cq": 14,
  "itu": 28,
  "state": "",
  "cnty": "",
  "iota": "",
  "sota": "",
  "wwff": "",
  "pota": "",
  "sig": "",
  "sig_info": "",
  "power": 100,
  "active": true
}

country 与 active 为只读字段。其余字段对应下面的可写字段,因此 GET 的结果可以直接通过 PATCH 发回。

创建台站位置

POST /api/v2/station

必填字段: name, callsign, dxcc, cq, itu。

curl -X POST https://<WAVELOG_URL>/index.php/api/v2/station \
     -H "Authorization: Bearer wl2_your_token_here" \
     -H "Content-Type: application/json" \
     -d '{
           "name": "DJ7NT at Home",
           "callsign": "DJ7NT",
           "gridsquare": "JO30oo",
           "city": "Unkel",
           "dxcc": 230,
           "cq": 14,
           "itu": 28,
           "power": 100
         }'
  • 你的第一个台站位置会自动成为活动位置。
  • 成功时 API 返回 201 Created、一个 Location 响应头,以及 data 中的新建对象。
  • 若已存在完全相同的台站位置,返回 409 conflict。
  • 无效的网格定位返回 400 validation_error。
  • 缺少必填字段返回 400 validation_error,并在 details.missing 中列出缺失的字段。

可写字段

字段 说明
name 配置档案名称(创建时必填)
callsign 台站呼号(创建时必填)
gridsquare 梅登黑德网格定位,会进行校验
city QTH(电台位置)/ 城市
dxcc DXCC 实体编号(创建时必填)
cq CQ 分区(创建时必填)
itu ITU 分区(创建时必填)
state 一级行政区划
cnty 二级行政区划(县)——见下方说明
iota IOTA 索引
sota SOTA 索引
wwff WWFF 索引
pota POTA 索引
sig 特别兴趣小组
sig_info 特别兴趣小组信息
power 默认发射功率,单位为瓦

注意

外部服务凭据(QRZ、HRDLog、ClubLog、OQRS、webADIF、eQSL)不会通过 API 暴露,创建时保持默认值。

警告:集体台令牌需要 officer 级别才能写入

台站位置是集体台共享的基础设施,删除一个位置会连同其全部 QSO 一起删除。因此创建、更新和删除这些位置需要权限级别 9;读取对所有成员开放。级别较低时会被拒绝,返回 403 insufficient_club_permission。参见集体台。

注意

cnty(县)只对具有 ADIF 二级行政区划的 DXCC 实体保存。对其他任何 DXCC 实体,该县字段都会被自动清空,与 Web 界面的行为一致。

更新台站位置

PATCH /api/v2/station/{id} —— 部分更新,只有你发送的字段会改变。省略的字段保留其已存值。

curl -X PATCH https://<WAVELOG_URL>/index.php/api/v2/station/1 \
     -H "Authorization: Bearer wl2_your_token_here" \
     -H "Content-Type: application/json" \
     -d '{ "power": 50, "city": "Bonn" }'

更新后的台站对象会在 data 中返回。

注意(切换活动台站位置)

自 3.2.0 起,set_active: true 还会把该位置设为所有者的活动位置——即新的 QSO 和 Web 界面默认使用的那个位置:

bash curl -X PATCH https://<WAVELOG_URL>/index.php/api/v2/station/2 \ -H "Authorization: Bearer wl2_your_token_here" \ -H "Content-Type: application/json" \ -d '{ "set_active": true }'

它有意与响应中只读的 active 使用不同的键,这样 GET 的结果可以直接通过 PATCH 发回,而不会悄悄改掉你的活动位置。只包含 set_active 的请求体也是有效的。

注意(必填字段不能被清空)

创建时必填的字段在该位置的整个生命周期内始终必填。把其中任何一个以 null 或 "" 发送会被拒绝,返回 400 validation_error,并在 details.fields 中给出违规的字段名。若想保留已存值,请把该字段从请求体中省略。

删除台站位置

DELETE /api/v2/station/{id}

警告

此操作是破坏性的。删除一个台站位置会同时删除其全部 QSO 及其关联的 QSL/eQSL 数据,与 Web 界面的行为完全相同。

  • 活动台站位置不能被删除,会返回 409 conflict。请先激活另一个位置。
  • 成功时 API 返回 204 No Content。
curl -X DELETE https://<WAVELOG_URL>/index.php/api/v2/station/2 \
     -H "Authorization: Bearer wl2_your_token_here"
Wavelog 手册(中文版) / 台站 0 字 0 行 bg8lng
2026-10-21T12:42:36.315698774Z 2026-10-21T12:43:58.823652379Z