Skip to content

Latest commit

 

History

History
310 lines (219 loc) · 7.95 KB

README.md

File metadata and controls

310 lines (219 loc) · 7.95 KB

iHealth-site

iHealth 项目的后台程序

依赖

  • Django==1.8.17
  • pymongo==3.4.0
  • uWSGI==2.0.15

启动项目

  1. 本地启动(windows):
python manage.py runserver 0.0.0.0:8000
  1. 打开浏览器访问 http://127.0.0.1:8000/
    出现 Hello, I am iHealth ' backend! 表示启动成功

  2. 测试其它接口
    获取文章列表:http://127.0.0.1:8000/api/v1/articlelist
    获取文章详情:http://127.0.0.1:8000/api/v1/articledetail?id=59eefad4e6c80c707840adc2

TODO

  • 【接口】获取文章首页列表
  • 【接口】获取文章详情
  • 【接口】用户登陆验证
  • 【接口】模糊匹配指定用户名,返回符合的用户列表
  • 【接口】获取用户详情
  • 【接口】用户注册
  • 【接口】根据 id 批量请求用户信息
  • 【接口】点赞数更新
  • 【接口】推荐列表 个性化推荐文章
  • 【接口】获取用户个人病历
  • 【接口】获取某用户的主治医生信息
  • 【接口】个人信息的修改
  • 【接口】医生为病人添加病历

接口说明

API 接口采用 RESTful 规范设计

什么是 RESTful 请看:怎样用通俗的语言解释REST,以及RESTful? - 知乎


  • 获取首页文章列表

示例:http://ihealth.yangyingming.com/api/v1/articlelist?page=1&limit=10&userID=5a02e30be6c80c1c9ecdaea7&cate=recommend

请求方式:GET

参数 默认值 说明
page 1 取第几页的数据
limit 10 一次取多少个
userID None 用户ID,个性化推荐用
cate None 首页文章分类,'recommend'为推荐

  • 获取文章详情

示例:http://ihealth.yangyingming.com/api/v1/articledetail?id=59eefad4e6c80c707840adc2&userID=5a02e30be6c80c1c9ecdaea7

请求方式:GET

参数 默认值 说明
id None 取指定id的文章详情
userID None 用户ID,个性化推荐用

  • 点赞接口

示例:http://ihealth.yangyingming.com/api/v1/updateUpvote?id=59eefad4e6c80c707840adc2&userID=5a02e30be6c80c1c9ecdaea7

请求方式:GET

参数 默认值 说明
id None 取指定id的文章详情
userID None 用户ID,个性化推荐用

  • 用户登陆验证

示例:http://ihealth.yangyingming.com/api/v1/usercheck

请求方式:POST

参数 默认值 说明
email None 待验证用户的邮箱
password None 待验证用户的密码

  • 模糊匹配指定用户名,返回符合的用户列表

示例:http://ihealth.yangyingming.com/api/v1/userlist?name=小明

请求方式:GET

参数 默认值 说明
name '' 模糊匹配条件
selfname '' 需要排除的name值
limit 10 最多匹配多少条结果

  • 获取用户详情

示例:http://ihealth.yangyingming.com/api/v1/user?id=59fb1595dfdeee2b4c26c346

请求方式:GET

参数 默认值 说明
id None 用户id

  • 用户注册

示例:http://ihealth.yangyingming.com/api/v1/reguser

请求方式:POST

参数 默认值 说明
email None 注册邮箱
password None 密码
nickname None 用户昵称
name None 用户真实姓名
sex None 性别 0:女 1:男
usertype None 用户类别 0:游客 1:患者 2:医生 3:管理员
birthday None 用户出生日期
introduction None 个人介绍
age None 用户年龄
phone None 注册手机号

  • 根据ID批量获取用户信息

示例:http://ihealth.yangyingming.com/api/v1/userlistbyid?id=59fb1595dfdeee2b4c26c347,59fb1595dfdeee2b4c26c348

请求方式:GET

参数 默认值 说明
id None 要获取的用户id,可以是多个

  • 修改昵称

示例:http://ihealth.yangyingming.com/api/v1/changeNickname

请求方式:POST

参数 默认值 说明
id None 要修改昵称的用户id
newName None 修改后的昵称

  • 修改手机号

示例:http://ihealth.yangyingming.com/api/v1/changePhone

请求方式:POST

参数 默认值 说明
id None 要修改手机号的用户id
newPhone None 修改后的手机号

  • 修改姓名

示例:http://ihealth.yangyingming.com/api/v1/changeName

请求方式:POST

参数 默认值 说明
id None 要修改姓名的用户id
newName None 修改后的姓名

  • 修改性别

示例:http://ihealth.yangyingming.com/api/v1/changeSex

请求方式:POST

参数 默认值 说明
id None 要修改性别的用户id
newSex None 修改后的性别

  • 修改密码

示例:http://ihealth.yangyingming.com/api/v1/changePassword

请求方式:POST

参数 默认值 说明
id None 要修改密码的用户id
oldPassword None 原密码
newPassword None 新密码

  • 修改出生日期

示例:http://ihealth.yangyingming.com/api/v1/changeBirthday

请求方式:POST

参数 默认值 说明
id None 要修改出生日期的用户id
newBirthday None 新的出生日期

  • 添加病历

示例:http://ihealth.yangyingming.com/api/v1/addMedicalRecord

请求方式:POST

参数 默认值 说明
id None 要添加病历的用户id
date None 添加病历的日期
doctor None 添加病历的主治医生
content None 病历内容

Django 搭建笔记(笔记部分,和项目无关)

  1. 创建项目目录
django-admin startproject iHealth_site
  1. 运行自带服务器进行测试
python manage.py runserver 0.0.0.0:8000

注意:想要外网访问需要在 settings.py 的 ALLOWED_HOSTS = ['*']

  1. 创建app目录
python manage.py startapp mysite

MongoDB 配置

  1. 开启 MongoDB 权限认证:在配置文件中加入 auth = true

  2. 创建管理员用户(如果你是第一次使用 MongoDB)

use admin
db.createUser({user:"admin",pwd:"admin123",roles:["userAdminAnyDatabase"]})

管理员用户用来创建其他数据库和用户

  1. 使用管理员账户远程登录
C:\Users\cs>mongo [your_ip]:27017
> use admin
switched to db admin
> db.auth('admin','admin123')
1
  1. 创建 iHealth 数据库,以及操作该数据库的用户
use iHealth         // 创建 iHealth 数据库,并作为认证数据库
db.createUser({
    user:'admin',   // 用户名
    pwd:'admin123', // 用户密码
    roles:[{role:'readWrite',db:'iHealth'}]     // 为该用户赋予数据库的读写权限
})
  1. 使用该用户远程登录 iHealth 数据库
C:\Users\cs>mongo [your_ip]:27017
> use iHealth
switched to db iHealth
> db.auth('admin','admin123')
1
> db.getCollectionNames()
[ ]

数据库刚刚创建,所以没有数据

参考资料