欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

csugo--基于Beego的中南大学教务,校车,招聘查询API接口

程序员文章站 2022-03-18 14:57:23
Introduction 本项目是GO语言框架beego开发的简易API服务,提供中南大学校内的几个API接口服务,旨在练习GO WEB开发. 演示站点: "http://lovesmg.cn:8080" 包括: 教务:成绩查询 教务:排名查询 教务:课表查询 招聘:招聘信息 校车:校车查询 Usa ......

Introduction

本项目是GO语言框架beego开发的简易API服务,提供中南大学校内的几个API接口服务,旨在练习GO WEB开发.
演示站点:http://lovesmg.cn:8080

包括:

  • 教务:成绩查询
  • 教务:排名查询
  • 教务:课表查询
  • 招聘:招聘信息
  • 校车:校车查询

Usage

git clone https://github.com/csuhan/csugo.git

cd csugo

bee run

Service

请在请求参数后加上token=csugo-token

如成绩查询:

wget localhost:8080/api/v1/jwc/myid/mypassword/grade?token=csugo-token

在请求地址结尾需要添加token

成绩查询接口

youwebsite/api/v1/jwc/:id/:pwd/grade [get]

参数说明:

id:学号

pwd:教务系统密码

返回内容说明

成功:
{
  "StateCode": 1,
  "Error": "",
  "Grades": [
    {
      "ClassNo": 1,
      "FirstTerm": "2015-2016-1",
      "GottenTerm": "2015-2016-1",
      "ClassName": "[010001T1]新生课",
      "MiddleGrade": "85",
      "FinalGrade": "85",
      "Grade": "85",
      "ClassScore": "1",
      "ClassType": "必修",
      "ClassProp": "信息技术类"
    },
    {
      "ClassNo": 2,
      "FirstTerm": "2015-2016-1",
      "GottenTerm": "2015-2016-1",
      "ClassName": "[080203X1]工程制图基础",
      "MiddleGrade": "84",
      "FinalGrade": "84",
      "Grade": "84",
      "ClassScore": "4",
      "ClassType": "必修",
      "ClassProp": "信息技术类"
    },
    部分内容省略......
    ]

账号或者密码错误:
{
  "StateCode": -1,
  "Error": "账号或者密码错误,请重新输入",
  "Grades": []
}

课表查询

youwebsite/api/v1/jwc/:id/:pwd/class/:term/:week [get]

参数说明:

id:学号
pwd:教务系统密码
term:学期.如:2017-2018-2
week:周次.0表示所有周,其他表示周次

返回说明:

返回数据中Class为二维数组,长度为42,排列方式为:

        周一 周二  周三 周四 周五 周六 周日
  1-2    1    2     3    4    5    6    7

  3-4    8    9    10    ................

  5-6    ................................

  7-8    ................................

 9-10    ................................

11-12    ...........................   42

返回数据:

成功:
{
  "StateCode": 1,
  "Error": "",
  "Class": [
    [
      {
        "ClassName": "雷达干涉测量(双语)",
        "Teacher": "*伟教授",
        "Weeks": "3-12(周)",
        "Place": "B座309"
      }
    ],
    [
      {
        "ClassName": "马克思主义基本原理",
        "Teacher": "罗会钧教授",
        "Weeks": "1-16(周)",
        "Place": "A座208"
      }
    ],
    [
      {
        "ClassName": "",
        "Teacher": "",
        "Weeks": "",
        "Place": ""
      }
    ],
    [
      {
        "ClassName": "遥感应用与专题制图",
        "Teacher": "陶超副教授",
        "Weeks": "9-16(周)",
        "Place": "C座204"
      },
      {
        "ClassName": "微波遥感",
        "Teacher": "汪长城副教授",
        "Weeks": "1-8(周)",
        "Place": "B座218"
      }
    ],
    [
      {
        "ClassName": "地理信息系统原理及应用(双语)",
        "Teacher": "邹滨副教授",
        "Weeks": "5-16(周)",
        "Place": "B座210"
      }
    ],
    部分内容省略...
  ]
}
账号或者密码错误:
{
  "StateCode": -1,
  "Error": "账号或者密码错误,请重新输入",
  "Class": []
}

排名查询

youwebsite/api/v1/jwc/:id/;pwd/rank [get]

参数说明:

id:学号
pwd:教务系统密码

返回数据:

{
  "StateCode": 1,
  "Error": "",
  "Rank": [
    {
      "入学以来": {
        "TotalScore": "139.5",
        "ClassRank": "7",
        "AverScore": "85.58"
      }
    },
    {
      "2017-2018-1": {
        "TotalScore": "23.5",
        "ClassRank": "6",
        "AverScore": "90.66"
      }
    },
    {
      "2017": {
        "TotalScore": "23.5",
        "ClassRank": "6",
        "AverScore": "90.66"
      }
    },
    {
      "2016-2017-2": {
        "TotalScore": "28",
        "ClassRank": "6",
        "AverScore": "86.88"
      }
    },
    {
      "2016-2017-1": {
        "TotalScore": "31",
        "ClassRank": "7",
        "AverScore": "86.63"
      }
    },
    {
      "2016": {
        "TotalScore": "59",
        "ClassRank": "7",
        "AverScore": "86.75"
      }
    },
    {
      "2015-2016-2": {
        "TotalScore": "31",
        "ClassRank": "5",
        "AverScore": "83.26"
      }
    },
    {
      "2015-2016-1": {
        "TotalScore": "26",
        "ClassRank": "14",
        "AverScore": "81.12"
      }
    },
    {
      "2015": {
        "TotalScore": "57",
        "ClassRank": "8",
        "AverScore": "82.28"
      }
    }
  ]
}

校车查询

youwebsite/api/v1/bus/search/:start/:end/:time

参数说明:

start:起点
end:终点
time:出发时间
站点包括:['校本部图书馆前坪','南校区一教学楼前坪','升华学生公寓大门',
         '新校区教学楼D座南坪','新校区艺术楼','湘雅医学院老校区',
         '湘雅医学院新校区','湘雅医学院新校区大门','铁道校区办公楼前坪',
         '铁道校区图书馆前坪','科教新村','东塘']
时间包括:['7:00-7:59','8:00-8:59','9:00-9:59',
         '10:00-10:59','11:00-11:59','13:00-13:59',
         '14:00-14:59','15:00-15:59','17:00-17:59',
         '18:00-18:59','20:00-20:59']

返回数据说明:

{
  "StateCode": 1,
  "Error": "",
  "Buses": [
    {
      "StartTime": "7:30",
      "Start": "校本部图书馆前坪",
      "End": "新校区艺术楼",
      "RunTime": "周一至周五",
      "Num": "2",
      "Seat": "45",
      "Stations": [
        "校本部图书馆前坪",
        "升华学生公寓大门",
        "新校区教学楼D座南坪",
        "新校区艺术楼",
        "铁道校区图书馆前坪"
      ]
    },
    {
      "StartTime": "7:40",
      "Start": "校本部图书馆前坪",
      "End": "新校区艺术楼",
      "RunTime": "星期六",
      "Num": "1",
      "Seat": "26",
      "Stations": [
        "校本部图书馆前坪",
        "升华学生公寓大门",
        "新校区教学楼D座南坪",
        "新校区艺术楼"
      ]
    }
  ]
}

招聘查询

youwebsite/api/v1/job/:type/:pageindex/:pagesize/:hastime [get]

参数说明:

type:招聘类型,1-本部招聘,2-湘雅招聘,3-铁道招聘,4-在线招聘,5-事业招考
pageindex:页码
pagesize:页面信息条数
hastime:是否包含招聘会时间:0-不包含,1-包含(会大大增加请求耗费时间)

返回数据说明:

{
  "StateCode": 1,
  "Error": "",
  "Jobs": [
    {
      "Link": "http://jobsky.csu.edu.cn/Home/ArticleDetails/10219",
      "Title": "明基BenQ友达集团",
      "Time": "2018.04.02",
      "Place": "中南大学校本部 立言厅"
    },
    {
      "Link": "http://jobsky.csu.edu.cn/Home/ArticleDetails/10231",
      "Title": "三七互娱2018春季校园招聘",
      "Time": "2018.03.28",
      "Place": "中南大学校本部科教南楼301"
    },
    {
      "Link": "http://jobsky.csu.edu.cn/Home/ArticleDetails/9983",
      "Title": "TCL多媒体科技控股有限公司",
      "Time": "2018.03.27",
      "Place": "中南大学校本部科教南楼 407"
    },
    {
      "Link": "http://jobsky.csu.edu.cn/Home/ArticleDetails/10209",
      "Title": "上海泛微网络科技股份有限公司",
      "Time": "2018.03.23",
      "Place": "中南大学校本部科教南楼 206"
    },
    {
      "Link": "http://jobsky.csu.edu.cn/Home/ArticleDetails/10204",
      "Title": "北京新七天电子商务技术股份有限公司",
      "Time": "2018.03.22",
      "Place": "中南大学校本部科教北楼 207"
    }
  ]
}

System Structure

项目组成:

├── conf
│   └── app.conf 配置文件
├── controllers 控制器
│   ├── bus.go 校车
│   ├── default.go 首页
│   ├── error.go 错误处理
│   ├── job.go 招聘
│   └── jwc.go 教务
├── logs 日志
│   └── project.log
├── main.go 入口文件
├── middleware 中间件
│   └── apiauth.go token认证
├── models 模型
│   ├── bus.go 校车
│   ├── job.go 招聘
│   └── jwc.go 教务
├── routers 路由
│   ├── commentsRouter_controllers.go
│   └── router.go
├── static 静态文件
│   ├── css
│   ├── img
│   └── js
├── tests 测试
│   └── default_test.go
├── utils
│   └── errors.go
└── views 视图
    ├── errors
    │   └── 404.html
    └── index.html