Skip to content

Files

Latest commit

69e0a8d · May 7, 2020

History

History
106 lines (84 loc) · 3.88 KB

README.md

File metadata and controls

106 lines (84 loc) · 3.88 KB

Django 日期查询接口

部署

在 conda 虚拟环境中部署

> conda create -n HolidayAPI python=3.8
> conda activate HolidayAPI
(HolidayAPI) > conda install django
(HolidayAPI) > conda install pyjwt
(HolidayAPI) > python .\manage.py runserver

conda install --yes --file requirements.txt

人工测试

接口交互

> curl -d username=rose -d password=12345 http://127.0.0.1:8000/user/signup
{"code": 201, "message": "Signed up successfully. ", "data": {"username": "rose"}}
> curl -d username=rose -d password=12345 http://127.0.0.1:8000/user/login
{"code": 200, "message": "Logged-in successfully. ", "data": {"username": "rose", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo"}}
> curl -d date=1994-01-01 -d token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo http://127.0.0.1:8000/user/query
{"code": 200, "message": "Query was successfully. ", "data": {"HolidayName": "元旦"}}
> curl -d date=1994-10-01 -d token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo http://127.0.0.1:8000/user/query
{"code": 200, "message": "Query was successfully. ", "data": {"HolidayName": "国庆节"}}
> curl -d date=1994-12-25 -d token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODg5NjE0NTksImlhdCI6MTU4ODg3NTA1OSwiZGF0YSI6eyJ1c2VybmFtZSI6InJvc2UifX0.bzvIs2ZiRgECm0jpa0PXnRtackZP6e6FHYWXq0CPouo http://127.0.0.1:8000/user/query
{"code": 200, "message": "Query was successfully. ", "data": {"HolidayName": "圣诞节"}}

数据库查询

> sqlite3 db.sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> .tables
auth_group                  django_admin_log
auth_group_permissions      django_content_type
auth_permission             django_migrations
auth_user                   django_session
auth_user_groups            user_holiday
auth_user_user_permissions  user_user
sqlite> select * from user_user;
1|rose|12345
sqlite> select * from user_holiday;
1|元旦|2000-01-01
2|圣诞节|2000-12-25
3|国庆节|2000-10-01
sqlite>

接口

用户接口

  • /user/signup 支持 POST 方法,接受 username 与 password 两个参数。返回注册成功或失败的 json 信息

  • /user/login 支持 POST 方法,接受 username 与 password 两个参数。登录成功时(用户存在且密码正确)返回带有 token 的 json 信息,否则给出登录失败的 json 信息。

日期节日查询接口

  • /user/query 支持 POST 方法,接受 date(YYYY-MM-DD) 与 token 两个参数。数据库中已有如下三个节日
    • 每年的 01 月 01 日,元旦
    • 每年的 12 月 25 日,圣诞节
    • 每年的 10 月 01 日,国庆节。 未登录的情况下,token 无法被验证,返回未登录的 json 提示信息;已登录的情况下,返回查询节日结果 json 格式的信息。。

json 信息

接口返回的 json 信息参考Google Cloud References,成功的请求有如下格式的返回信息

{
    "code": 200,
    "message": message,
    "data": {
        "username": username,
        "token": token
    }
}

其中'date'键包括多个返回的数据值

{
    "code": 401,
    "message": message,
    "error": [
        {
            "reason": "Unauthorized",
            "message": message
        }
    ]
}

其中'error'键的值是多个错误信息的数组,每个错误包含了错误原因及信息