太阳弧推运盘API文档
接口说明
本接口用于生成太阳弧推运盘,需要提供本命盘数据和推运目标时间。太阳弧推运是一种重要的推运技术,通过计算太阳的运动来预测人生发展。
基本信息
- 接口URL:
/onechart
- 请求方式: POST
- Content-Type: application/json
请求参数
| 参数名 |
类型 |
必选 |
说明 |
| chart_type |
string |
是 |
固定值:"solararc" |
| natal_data.datetime |
string |
是 |
出生日期时间,格式:YYYY-MM-DD HH:mm:ss |
| natal_data.lat |
number |
是 |
出生地纬度 |
| natal_data.lon |
number |
是 |
出生地经度 |
| natal_data.tz |
string |
是 |
出生地时区 |
| target_data.datetime |
string |
是 |
推运目标日期时间,格式:YYYY-MM-DD HH:mm:ss |
| target_data.lat |
number |
是 |
推运目标地点纬度 |
| target_data.lon |
number |
是 |
推运目标地点经度 |
| target_data.tz |
string |
是 |
推运目标地点时区 |
| house_system |
string |
否 |
宫位系统,默认为占星安宫(P) |
| use_chinese_font |
boolean |
否 |
是否使用中文字体,默认false |
| include_svg |
Boolean |
否 |
是否包含SVG图像,默认false |
请求示例
{
"chart_type": "solararc",
"natal_data": {
"datetime": "1990-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": "8.0"
},
"target_data": {
"datetime": "2024-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": "8.0"
},
"house_system": "P",
"use_chinese_font": true,
"include_svg":true,
}
返回参数
| 参数名 |
类型 |
说明 |
| data |
object |
星盘数据,包含行星位置、宫位等信息 |
| svg |
string |
星盘SVG图形数据(可能为null如果SVG生成失败) |
返回示例
{
"data": {
"chart_type": "solararc",
"birth_date": "1990-01-01 12:00",
"target_date": "2024-01-01 12:00",
"planets": {
"sun": {"longitude": 280.5, "latitude": 0.0, ...},
"moon": {"longitude": 125.3, "latitude": 2.1, ...},
...
},
"houses": {
"ASC": {"longitude": 45.2},
"House_1": {"longitude": 45.2},
"House_2": {"longitude": 75.8},
...
}
},
"svg": ""
}
Python测试代码示例
import requests
import json
import os
# 测试太阳弧推运盘API
def test_solararc(base_url="http://chart.12sign.top"):
url = f"{base_url}/onechart"
payload = {
"chart_type": "solararc",
"natal_data": {
"datetime": "1990-01-01 12:00:00",
"lon": 116.4,
"lat": 39.9,
"tz": 8.0
},
"target_data": {
"datetime": "2024-01-01 12:00:00",
"lon": 116.4,
"lat": 39.9,
"tz": 8.0
},
"house_system": "P",
"include_svg": True
}
try:
print("正在测试太阳弧推运盘API...")
response = requests.post(url, json=payload, headers={'Content-Type': 'application/json'})
print(f"响应状态码: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("太阳弧推运盘API测试成功!")
print(f"返回数据包含: {list(data.keys())}")
print("完整的返回数据:")
print(data)
# 保存SVG文件
if 'svg' in data and data['svg']:
os.makedirs('test_outputs', exist_ok=True)
with open('test_outputs/solararc_test.svg', 'w', encoding='utf-8') as f:
f.write(data['svg'])
print("SVG文件已保存: test_outputs/solararc_test.svg")
return data
else:
print(f"API请求失败: {response.status_code}")
print(f"错误信息: {response.text}")
return None
except Exception as e:
print(f"请求出错: {e}")
return None
if __name__ == "__main__":
test_solararc()
def test_solararc_api(base_url="http://chart.12sign.top"):
"""测试太阳弧推运盘API"""
endpoint = f"{base_url}/api/chart"
# 测试数据
payload = {
"chart_type": "solararc",
"natal_data": {
"datetime": "1990-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": "8.0"
},
"target_data": {
"datetime": "2025-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": "8.0"
},
"house_system": "P",
"use_chinese_font": True
}
try:
response = requests.post(
endpoint,
json=payload,
headers={'Content-Type': 'application/json'}
)
if response.status_code == 200:
result = response.json()
print("✓ 太阳弧推运盘API测试成功")
# 保存SVG文件
if 'svg' in result and result['svg']:
with open('solararc_chart.svg', 'w', encoding='utf-8') as f:
f.write(result['svg'])
print(" SVG已保存: solararc_chart.svg")
return result
else:
print(f"✗ 太阳弧推运盘API测试失败: {response.status_code}")
return None
except Exception as e:
print(f"✗ 太阳弧推运盘API测试出错: {e}")
return None
# 使用示例
if __name__ == "__main__":
print("=== 太阳弧推运盘API测试 ===")
test_solararc_api()
print("\n测试完成!")
注意事项
- 太阳弧推运是一种基于太阳运动的推运技术
- natal_data为本命盘数据,target_data为推运目标时间和地点
- 时间格式必须严格遵循YYYY-MM-DD HH:mm:ss的格式
- 经纬度使用小数格式,东经北纬为正,西经南纬为负
- 时区格式为数字字符串,如"8.0"或"-5.5"
- 太阳弧推运常用于预测人生重大事件和发展机遇
- SVG字段可能为null,表示图形生成失败,但数据仍然有效
- API已通过完整测试,包括不同年龄、地点、宫位制等场景