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

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

学院

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

VISH 应用的功能
栏目
指南

目录 API:班级、教师、教室

更新于 27.10.2026

参考书是机构、团体、教师和俄罗斯交通大学 (MIIT)构成时间表的教室。 所有这些都是开放的阅读没有钥匙。 2026年10月23日与摊位d1核对;本页的方法也可在生产中使用。

方法

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

研究所:GET/研究所

所有大学学院都是: id, code(例如, АГА), name, groupsCount, university. 没有显示已离开时间表的研究所; includeRetired=1将添加它们与retired: true和successorCode -继承研究所的代码。

组:获取/组

  • search是代码的不区分大小写部分(шад), course是课程吗, instituteIds用逗号分隔, facultyCode.
  • 该集团有: id, name(代码, GET /schedule?group=…就可以了), displayName三种语言, course, institute, specialty.
  • GET /groups/{id} -一组; GET /groups/filters -过滤器的值。

教师:GET/教师

  • search —全名或短名, department -部门, instituteIds -谁在这些学院上课。
  • 老师有: id, fullName和shortName三种语言, department, photoUrl, profileUrl (页上miit.ru ,如果有的话), source.
  • GET /teachers/{id}是老师的卡片吗; GET /teachers/filters是过滤器的部门。

观众:获取/观众

  • search, building,而floor可以用逗号分隔(?building=8,12), instituteIds, order (desc默认情况下)。
  • 为观众而设: name(如在时间表中,例如8412), fullName (“8号楼4楼12号礼堂”), building, floor, room, address, buildingInfo与建筑物的坐标。
  • GET /auditories/room?name=8412 -指定一个礼堂; GET /auditories/filters -建筑物和地板。

小组、教师和教室是按页分配的: page, perPage(默认为20,不超过200),或all=1(最多2000个条目)。 机构一下子就来了,没有一页一页的输出。 三种语言的文本作为对象{ ru, en, zh }.

示例:浏览目录

// Institutes, a group of the first institute, one teacher by id and one room by its name.
const API = process.env.VISH_API ?? 'https://d1.vish-app.ru/api/v1'

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()
}

const institutes = await get('/institutes')
const institute = institutes.list.find((item) => item.groupsCount > 0)
if (!institute) throw new Error('no institute with groups')

const groups = await get('/groups', { instituteIds: institute.id, perPage: 3 })
if (!groups.list.every((group) => group.institute?.id === institute.id)) throw new Error('instituteIds filter ignored')

const [firstTeacher] = (await get('/teachers', { perPage: 1 })).list
const teacher = await get(`/teachers/${firstTeacher.id}`)
if (teacher.id !== firstTeacher.id) throw new Error('teacher lookup failed')

const [firstRoom] = (await get('/auditories', { perPage: 1 })).list
const room = await get('/auditories/room', { name: firstRoom.name })
if (room.name !== firstRoom.name) throw new Error('room lookup failed')

console.log(`${institute.code}: ${institute.name.ru}, ${institute.groupsCount} groups, e.g. ${groups.list.map((g) => g.name).join(', ')}`)
console.log(`teacher: ${teacher.fullName.ru} (${teacher.department?.ru ?? 'no department'})`)
console.log(`room ${room.name}: ${room.fullName.ru}`)

尝试

试一试请求

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

有用的知道

  • 展位Id不同。 id d1和生产上的组不匹配。 团体编号(ШАД-111)、教师姓名和教室名称是相同的;如果集成在两个摊位上,请保留它们。
  • 团体,教师和教室来自大学的时间表 到miit.ru 它们也随之更新。
  • 只有有权利的员工(reference:groups:manage, teachers:manage)可以更改目录-手动添加的教师被标记source: "manual".

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