Menu

Tree [976c4a] master /
 History

HTTPS access


File Date Author Commit
 campus_api 2019-09-28 Allen Shaw Allen Shaw [78e68a] Update deployment
 requirements 2019-09-24 lonsty lonsty [f9294d] Code encryption
 .dockerignore 2019-09-28 Allen Shaw Allen Shaw [78e68a] Update deployment
 .env 2019-09-24 lonsty lonsty [c0e44f] Use encrypted codes build docker image
 .gitignore 2019-09-28 Allen Shaw Allen Shaw [78e68a] Update deployment
 APIs.md 2019-10-14 Allen Shaw Allen Shaw [2fee8a] Update APIs.md
 Dockerfile 2019-09-28 Allen Shaw Allen Shaw [78e68a] Update deployment
 Pipfile 2019-09-23 Allen Shaw Allen Shaw [929bd6] Parameters validate, query last 7 days, new tab...
 Pipfile.lock 2019-09-23 Allen Shaw Allen Shaw [929bd6] Parameters validate, query last 7 days, new tab...
 README.md 2019-10-14 Allen Shaw Allen Shaw [976c4a] Update README.md
 autoapp.py 2019-09-23 Allen Shaw Allen Shaw [a4213c] Update documents
 requirements.txt 2019-09-24 Allen Shaw Allen Shaw [2dba40] Code encryption

Read Me

Campus API

A flask api app based on flask-restful-api to geting campus records by employee IDs.

Environment

  • Python 3.6 or newer

Quickstart

1. Clone

git clone http://10.161.32.69/F1054460/campus-today-record-api.git
cd campus-today-record-api/

2. Run flask app with virtualenv

virtualenv --no-site-packages --python=python3.6 venv
source venv/bin/activate
pip install -r requirements.txt

gunicorn -b 0.0.0.0:5813 -w 2 autoapp:app

3. Or run flask app with pipenv

cd restful-api-minimal/
pipenv install

pipenv run gunicorn -b 0.0.0.0:5813 -w 2 autoapp:app

Deployment manual

1. Encrypt code

a. Install pyarmor

pip install pyarmor

b. Encrypt project to dist\

pyarmor init --entry=autoapp.py
pyarmor config --manifest "global-include *.py, prune dist, prune test, prune venv"
pyarmor build

2. Build docker image

docker build -t campus-api:latest -f Dockerfile .

3. Run for produciton

docker run -d -p 5813:5813 --env FLASK_CONFIG=production --name campus-api campus-api:latest

APIs

接口地址

http://<ip>:<port>/getLHCampusTodayRecordByID

请求方式

POST

输入参数

Content-Type: application/json

属性名称 属性描述 类型 必须 备注
token 权限验证 string 用户登录后的token,通过header传入
employCode 员工工号 string
date 查询日期 string 日期格式:YYYY-mm-dd。默认为今天,且仅支持查询过去7天(含今天)的记录
serialize 将返回结果data序列化 boolean 默认为true

入参举例

Headers
Token: "token123456"

body:
{
    "employCode": "F1054460",
    "date": "2019-09-17",
    "serialize": false
}

返回参数

属性名称 属性描述 类型 必须 备注
status 请求状态 string 请求成功为“OK”,否则为错误信息
data 返回数据 list 请求成功时,data为包含查询人员的所有刷脸记录的列表,否则为null

返回举例

{
    "data": [
        {
            "campus_entry_name": "D-LH-PDDS-D1",
            "device_latitude": "81787813",
            "device_longitude": "410903948",
            "device_type": "2",
            "e_ID": "F1054460",
            "gate_device_name": "D-LH-PDDS-D1",
            "in_or_out": "2",
            "tigger_time": "2019-09-17 07:55:58.0"
        }
    ],
    "status": "OK"
}

2. 获取多个员工今天刷脸信息

接口地址

http://<ip>:<port>/getLHCampusTodayRecordByIDs

请求方式

POST

输入参数

Content-Type: application/json

属性名称 属性描述 类型 必须 备注
token 权限验证 string 用户登录后的token,通过header传入
employCodes 员工工号的列表 list
date 查询日期 string 日期格式:YYYY-mm-dd。默认为今天,且仅支持查询过去7天(含今天)的记录
serialize 将返回结果data序列化 boolean 默认为true

入参举例

Headers
Token: "token123456"

body:
{
    "employCodes": ["F1054460", "F1054735"],
    "date": "2019-09-17",
    "serialize": false
}

返回参数

属性名称 属性描述 类型 必须 备注
status 请求状态 string 请求成功为“OK”,否则为错误信息
data 返回数据 list 请求成功时,data为包含所有查询人员的所有刷脸记录的列表,否则为null

返回举例

{
    "data": [
        {
            "campus_entry_name": "D-LH-PDDS-D1",
            "device_latitude": "81787813",
            "device_longitude": "410903948",
            "device_type": "2",
            "e_ID": "F1054460",
            "gate_device_name": "D-LH-PDDS-D1",
            "in_or_out": "2",
            "tigger_time": "2019-09-17 07:55:58.0"
        },
        {
            "campus_entry_name": "D-LH-PDDS-D1",
            "device_latitude": "81787813",
            "device_longitude": "410903948",
            "device_type": "2",
            "e_ID": "F1054735",
            "gate_device_name": "D-LH-PDDS-D1",
            "in_or_out": "2",
            "tigger_time": "2019-09-17 08:24:00.0"
        }
    ],
    "status": "OK"
}

Change Log

Version 0.1.3 (2019-9-23)

New features:

  • 新增传入参数:date,可查询过去七天内的记录
  • 使用cerberus验证传入参数,传参需严格按照要求填写
  • ~~使用type生成每日ac_event表~~
  • 使用pyarmor加密项目部署

Version 0.1.2 (2019-9-18)

Bug fixed:

  • 修复没有生成当天ac_event表的bug
  • 由于数据库连接限制,gunicorn worker数量减为3

Version 0.1.1 (2019-9-17)

Features:

  • 根据工号获取园区内刷脸记录的API
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.