你的合作方需要你提供一个接口,通过一个用户名来查询该用户当月的水、电费”请用任意语言定;义这个给对方的接口。并写出自己的实现(数据库查询部分可以只写注释不写代码)。请在设计中考虑对方可能需要哪些字段和异常。
时间: 2024-05-13 12:15:24 浏览: 5
接口定义:
```
GET /user/bills?username={username}
```
请求参数:
- `username`: 用户名,必填
响应数据:
- `electric_bill`: 电费金额,单位为元,可能为空
- `water_bill`: 水费金额,单位为元,可能为空
- `start_date`: 账单起始日期,格式为 `yyyy-MM-dd`
- `end_date`: 账单结束日期,格式为 `yyyy-MM-dd`
可能的异常:
- `400 Bad Request`: 请求参数不合法
- `404 Not Found`: 用户不存在
- `500 Internal Server Error`: 服务器内部错误
实现代码(Python Flask框架):
```python
from flask import Flask, jsonify, request
app = Flask(__name__)
# 模拟数据库查询电费和水费账单的函数
def query_bills(username: str):
# TODO: 根据用户名查询数据库,获取当月水费和电费账单信息
electric_bill = None
water_bill = None
start_date = '2021-08-01'
end_date = '2021-08-31'
return electric_bill, water_bill, start_date, end_date
@app.route('/user/bills')
def get_user_bills():
# 获取用户名参数
username = request.args.get('username')
if not username:
return jsonify({'message': '用户名不能为空'}), 400
# 查询账单信息
electric_bill, water_bill, start_date, end_date = query_bills(username)
if not electric_bill and not water_bill:
return jsonify({'message': '该用户本月没有水电费账单'}), 404
# 返回账单信息
result = {
'electric_bill': electric_bill,
'water_bill': water_bill,
'start_date': start_date,
'end_date': end_date,
}
return jsonify(result), 200
if __name__ == '__main__':
app.run()
```