- 使用 Composer 组织代码,主要使用 Composer 的 autoloader
./ElfStack
文件夹下的组件均为本人所写,这些组件均已经(或打算)上传至 packagist ,但为了避免频繁的composer update
,composer require
,因此统一组织到这个文件夹下,而不是更为合适的./src/Core
下。
- 使用时将 web 根目录指定到
./public
下即可。 - 使用前请逐一查看
./src/Config
下的各个文件进行使用前配置。 - 访问
domain/installer/install
可执行安装指令(初始化数据库表) - 访问
domain/installer/uninstall
可执行卸载指令(删除数据库表) - 访问
domain/installer/reinstall
可自动执行卸载指令后执行安装指令
- ajax 请求返回键包含
status
,值为['success', 'error', 'notice']
之一 - ajax 请求如果
status
不为success
,则info
键中包含具体说明 - 请求时带上 HTTP 头
X-Method-Override
可以重写 HTTP 动词 - 请求时带上 HTTP 头
X-Session-Id
可以指定会话id,但必须通过X-Credential
的验证 - HTTP 头
X-Credential
包含了重现会话所需要的加密令牌
目前存在一些潜在的安全问题如 xss注入 尚未理会 目前后端关于查询的部分性能有待完善(在小数据量时影响不大)
因为编写前端时间分配问题以及本人前端水平不佳,因此前端体验没有提升至最佳,但功能点均已实现
- url: /api/authorization
- method: POST
- data: username=xxx&password=xxx
- status: 状态
- info: 附加信息
- data: 若成功则为用户信息
- credential: 令牌
- session: 会话id
- url: /api/logout
- method: GET
Authorization Required 新注册用户可以有一次免审核修改个人信息的机会
- url: /api/user
- method: GET / PATCH
- data: (PATCH) gender=xxx&name=xxx&classname=xxx
- status: 状态
- data: 当前用户的当前信息
- info: 附加信息
Authorization Required (Admin)
- url: /api/users
- method: GET
- queryString: ?begin={start_index}&count={count}&search={keyword}
- status: 状态
- data: 数据
- totalCount: 记录总数
- url: /api/users?key={key}
- method: POST
- data: username={username}&password={password}&userGroup={1|2|3}
如果 userGroup 为
3
即Admin
,则必须在请求url后附加key
,将使用该值与Constants::Key
比较,如果相同则允许创建Admin
用户。
- status: 状态
- data: 新创建的用户信息
- session: Session-Id
- credential: 令牌信息
Authorization Required Student Group 只能查看同班的信息
- url: /api/users/{username}
- method: GET
- status: 状态
- data: 目标用户信息
Authorization Required
- url: /api/verify_update
- method: GET
- status: 状态
- data: 数据
Authorization Required
- url: /api/verify_update/{username}
- method: GET
(if no error)
- {"status": "success", "info": "Operation Complete!"}
Authorization Required (Admin)
- url: /api/class
- method: POST
- data: classname={name}
- status: 状态
- data: 班级信息数据
Authorization Required
- url: /api/class
- method: GET
- status: 状态
- data: 数据
Authorization Required
- url: /api/class/{classname}
- method: GET
- status: 状态
- data: 数据
Authorization Required
- url: /api/class/{classname}/{student|teacher|all}(?begin={begin_index}&count={count})
- method: GET
- status: 状态
- data: 数据
- totalCount: 总数
Authorization Required (Admin)
- url: /api/export/all
- url: /api/export/{classname}/{student|teacher|all}
- curl public.bbt.localhost/api/users -X POST -d "username=tamce&password=123&userGroup=1"
- curl public.bbt.localhost/api/user -H "X-Session-Id: 25atfnfvm3vkmuvfhkmdadlbl3" -H "X-Credential: jfioBn7gVznyhKv"
- curl public.bbt.localhost/api/user -X PATCH -d "gender=male&name=Tamce&classname=class%201" -H "X-Session-Id: 25atfnfvm3vkmuvfhkmdadlbl3" -H "X-Credential: jfioBn7gVznyhKv"