VISH 应用——俄罗斯交通大学课表

面向所有学院学生和教职工的俄罗斯交通大学课表。按天和按周查看自己班级和任意教师的课表、此刻的空闲教室、教室、班级和教师的使用情况、课表变更通知以及课表人工智能助手。

学院

俄罗斯交通大学应用涵盖五个学院:高等工程学院、民航学院、道路管理学院、先进工程学院“高铁学院”和国际交通运输学院。在任何学院,班级课表和教师课表的查找方式都相同。

VISH 应用的功能
栏目
指南

课表 API

更新于 27.10.2026

时间表是给API的主要内容VISH:团体及教师课程俄罗斯交通大学 (MIIT)与教室,类的类型,取消和编辑。 任何人都可以阅读它,没有钥匙。 2026年10月23日与摊位d1核对;本页的方法也可在生产中使用。

方法

无法加载接口方法列表打开接口参考 (在新标签页中打开)

课程:获取/时间表

的主要方法。 没有过滤器,他给所有的类在一页一页的基础上;通常他被问到一个小组或一个老师每个时期。

ПараметрЧто значит
groupКод группы ровно как в /groups, например ШАД-111. Тогда в ответе есть и поле group
groupId组ID也一样
teacher, teacherId教师的全名(俄语)或其标识符
scope一个小组和一个老师在一起: group(默认情况下)-只有这个老师的班级在这个小组, all -整个老师的时间表
date有一天, ГГГГ-ММ-ДД;取代dateFrom和dateTo
dateFrom, dateTo期;默认情况下—从学期开始到时间表结束
lessonTypelecture, practice, lab, seminar, consultation, exam, credit, other
room观众,例如8412
statusscheduled或cancelled
page, perPage, all页面输出(默认情况下,每页20,不超过200; all=1 -一次最多2000)

这个班有什么?: id, date, startAt, endAt, number(对的数量, null呼叫网格之外), subject(三种语言的名称), lessonType(对象: code从上面的列表和label三种语言), room和roomLabel(如果观众用单词命名,则命名), subgroup, status, weekParity (1或2), teachers, groups, extraGroups(不在同一类中的组VISH), notesCount, reactions, isSubscribed和subscribersCount(订阅类), isOverridden(该班在研究所编辑), updatedAt.

还有什么

  • GET /app-config -学期(semester.startDate, endDate, scheduleEndsAt),本周及其平价(currentWeek.number, currentWeek.parity),调用网格(schedule.lessonSlots).
  • GET /schedule/changes -小组或教师的时间表最近发生了什么变化(groupId或teacherId); period=weeks -本周和下周班的变化。 方便调查—见通知及日历.
  • GET /session -与小组或教师进行考试、测试和咨询; hasUpcoming —在接下来的30天内是否有考试或测试。
  • GET /schedule/filters, GET /schedule/lesson-types, GET /schedule/subjects, GET /schedule/courses -过滤器的值:类,科目,课程的类型。
  • GET /schedule/export.pdf -打印时间表(相同的过滤器),每分钟不超过10个请求。
  • GET /calendar/schedule.ics 和 GET /session.ics 在日历格式上是相同的.

只有拥有schedule:lesson:*权限可以更改时间表(POST, PATCH, DELETE到/schedule…),并且只在他们的团体和研究所。

示例:团体周

该示例采用该组当前周的类,并将每对的时间与调用网格进行比较/app-config. 组设置为变量VISH_GROUP(默认为ШАД-111).

// This week's lessons of one group, checked against the bell schedule.
const API = process.env.VISH_API ?? 'https://d1.vish-app.ru/api/v1'
const GROUP = process.env.VISH_GROUP ?? 'ШАД-111'

const get = async (path, params = {}) => {
	const url = new URL(`${API}${path}`)
	for (const [name, value] of Object.entries(params)) url.searchParams.set(name, String(value))
	const response = await fetch(url)
	if (!response.ok) throw new Error(`${url}: HTTP ${response.status}`)
	return response.json()
}

// Monday to Sunday of the current week, on the Moscow calendar.
const moscowToday = new Date(Date.now() + 3 * 60 * 60 * 1000)
const monday = new Date(moscowToday)
monday.setUTCDate(moscowToday.getUTCDate() - ((moscowToday.getUTCDay() + 6) % 7))
const sunday = new Date(monday)
sunday.setUTCDate(monday.getUTCDate() + 6)
const day = (date) => date.toISOString().slice(0, 10)

const config = await get('/app-config')
const slots = new Map(config.schedule.lessonSlots.map((slot) => [slot.number, slot]))
const week = await get('/schedule', { group: GROUP, dateFrom: day(monday), dateTo: day(sunday), all: 1 })
if (week.group?.name !== GROUP) throw new Error(`group ${GROUP} not found`)

console.log(`${GROUP}, week ${config.currentWeek.number} (parity ${config.currentWeek.parity}): ${week.list.length} lessons`)
for (const lesson of week.list) {
	// Wall-clock Moscow time in a UTC field: read the digits as they are.
	const start = lesson.startAt.slice(11, 16)
	const slot = slots.get(lesson.number)
	if (slot && slot.startTime !== start) throw new Error(`lesson ${lesson.id} starts ${start}, pair ${lesson.number} at ${slot.startTime}`)
	const cancelled = lesson.status === 'cancelled' ? ' (cancelled)' : ''
	console.log(`${lesson.date.slice(0, 10)} ${start} ${lesson.subject.ru} — ${lesson.room ?? 'no room'}${cancelled}`)
}

尝试

试一试请求

只有带锁的方法需要密钥。密钥只保存在本页:不会被存储,只作为本次请求的请求头发送,离开页面后即被清除。 如何获取密钥

如果出了什么问题

  • 空的list -本组在此期间(假期、时段)没有上课。
  • 404 NOT_FOUND —没有这个代码的组。 代码必须匹配name的/groups字符(西里尔文,连字符);你可以在/groups?search=….
  • 400 VALIDATION_ERROR 参数格式不正确; error.details.issues说是哪一个。
  • 400在all=1 -超过2000个课程被过滤掉:缩小时间或浏览网页。

验证:2026-10,PWA aa337c45,平台bff65fce._