使用说明
🌤️ 天气信息API服务器
此项目包括:OpenWeatherMap API使用提供天气信息RESTful API服务器。你可以获取全世界城市目前的天气信息和天气预报。
✨ 机能
- 🌤️ 获取当前天气信息
- 🌡️ 气温、体感温度、湿度、风速等详细信息
- 🌍 全球城市响应
- 🇯🇵 日语天气说明
- 📊 JSON形式的数据提供
- 🔮 五天天气预报
- 🚀 CI/CD管线(GitHub Actions)
- 🐳 Docker対応
- ☁️ Vercel部署就绪
安装,安装
1.安装相关性
npm install
2.设置环境变量
.env创建文件,然后单击OpenWeatherMap API请设置键:
cp env.example .env
.env编辑文件,然后单击OpenWeatherMap API设置键:
OPENWEATHER_API_KEY=your_api_key_here
3. OpenWeatherMap API获取密钥
- OpenWeatherMap访问
- 创建帐户
- API获取密钥
.env设置为文件
4.构建
npm run build
5. 実行
npm start
在开发模式下运行时:
npm run dev
API 端点
服务器信息
GET /
返回服务器的基本信息和可用端点。
当前天气信息
GET /weather/:city
参数:
city(必须):都市名(例:Tokyo, Osaka, Kyoto)country(可选):国家代码(例如:JP, US, UK、默认值:JP)
例:
curl http://localhost:3000/weather/Tokyo
curl http://localhost:3000/weather/New%20York?country=US
响应:
{
"success": true,
"data": {
"temperature": 22,
"feelsLike": 24,
"humidity": 65,
"windSpeed": 3.2,
"description": "曇り",
"visibility": 10,
"pressure": 1013,
"city": "Tokyo",
"country": "JP",
"timestamp": "2024-01-15T10:30:00.000Z"
}
}
天气予报
GET /weather/:city/forecast
参数:
city(必须):都市名country(可选):国家/地区代码(默认值:JP)days(可选):预报天数(默认值:5,最大值:5)
例:
curl http://localhost:3000/weather/Tokyo/forecast
curl http://localhost:3000/weather/Osaka/forecast?days=3
响应:
{
"success": true,
"data": [
{
"temperature": 22,
"feelsLike": 24,
"humidity": 65,
"windSpeed": 3.2,
"description": "曇り",
"visibility": 10,
"pressure": 1013,
"city": "Tokyo",
"country": "JP",
"timestamp": "2024-01-15T00:00:00.000Z"
}
// ... 他の日付のデータ
]
}
🏗️ 项目结构
weather-mcp-server/
├── src/
│ ├── index.ts # メインエントリーポイント
│ └── services/
│ └── weather.ts # 天気情報サービス
├── tests/
│ ├── setup.ts # テストセットアップ
│ └── simple.test.ts # 基本機能テスト
├── .github/
│ └── workflows/
│ ├── test.yml # テストワークフロー
│ ├── ci-cd.yml # CI/CDパイプライン
│ ├── deploy-vercel.yml # Vercelデプロイ
│ └── docker.yml # Dockerビルド
├── package.json
├── tsconfig.json
├── jest.config.js # Jest設定
├── vercel.json # Vercel設定
├── Dockerfile # Docker設定
├── env.example
└── README.md
🛠️ 开発
依存关系
express- Web框架结构cors- CORS中间件axios- HTTP 客户机dotenv- 環境変数管理typescript- TypeScript 编译程序jest-测试框架supertest- API测试
脚本,脚本
npm run build- TypeScript编译npm start-运行构建的服务器npm run dev-以开发模式运行npm test-运行测试npm run test:ci- CI用测试执行npm run test:coverage-覆盖测试npm run lint-编码连接npm run type-check-类型检查
🚀 CI/CD 管道
GitHub Actions 工作流程
- 测试自动化:更改代码时自动运行测试
- 构建: TypeScript编译
- 安全性:npm审计+Snyk
- 部署: Vercel自动部署
测试环境
- 测试覆盖: 良好
- 安定性: 100%成功率
- 自动化: PR自动测试时间
🐳 Docker 支持
# Dockerイメージのビルド
docker build -t weather-api .
# コンテナの実行
docker run -p 3000:3000 weather-api
☁️ Vercel 部署
- 维塞尔访问
- GitHub导入存储库
- 环境变数
OPENWEATHER_API_KEY的规格化距离的幂函数 - 自动部署完成
🧪 测试
# 全テスト実行
npm test
# カバレッジ付きテスト
npm run test:coverage
# CI用テスト
npm run test:ci
📊 质量指标
- 编码质量: TypeScript模具安全
- 测试:全面测试案例
- CI/CD:完全自动化
- 部署: 本番環境対応
错误处理
API返回以下错误响应:
{
"success": false,
"error": "エラーメッセージ"
}
📈 性能
- 响应时间: 高速
- 可扩展性: Docker対応
- 可用性:Vercel CDN
- 监视:GitHub操作
🔗 相关链接
许可证
MIT许可证
🤝 貢献
欢迎普鲁特和伊修的报告!
开发指南
- 创建功能分支
- 添加测试
- 执行代码审核
- CI/CD通过管线
- 合并