Перейти к содержанию

Contract

Описание контракта для адаптера API учебного заведения

Контракт адаптера API предназначен для интеграции данных учебного заведения с мобильным приложением Edugma. Он включает в себя описание базовых параметров, переменных и конечных точек (endpoints), которые предоставляют различные данные и функциональность.

Структура контракта

  1. Название учебного заведения:
    • name: Название учебного заведения (например, "Московский политехнический университет").
  2. Логотип:
    • image: URL к изображению логотипа учебного заведения.
  3. Переменные:
    • variables: Здесь определяются переменные, которые можно использовать в URL конечных точек. Например, переменная {baseUrl}.
  4. Конечные точки (endpoints):
    • method: HTTP-метод, используемый для запроса (например, GET, POST).
    • url: URL конечной точки, которая может содержать переменные (например, {baseUrl}/schedules/compact.json).
    • security: Указывает, требуется ли авторизация для данной конечной точки (true или false).

Пример реализации контракта

{
    "name": "Московский политехнический университет",
    "image": "https://mospolytech.ru/local/templates/main/dist/img/logos/mospolytech-logo-white.png",
    "variables": {
        "baseUrl": "https://raw.githubusercontent.com/Edugma/example-node/main"
    },
    "endpoints": {
        "schedule-compact-get": {
            "method": "get",
            "url": "{baseUrl}/schedules/compact.json",
            "security": false
        },
        "schedule-sources-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/sources/{type}/p{page}.json",
            "security": false
        },
        "schedule-sources-types-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/sources.json",
            "security": false
        },
        "schedule-info-group-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/group.json",
            "security": false
        },
        "schedule-info-teacher-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/teacher.json",
            "security": false
        },
        "schedule-info-place-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/place.json",
            "security": false
        },
        "schedule-info-subject-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/subject.json",
            "security": false
        },
        "schedule-info-lesson-type-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/lesson-type.json",
            "security": false
        },
        "schedule-places-free-post": {
            "method": "post",
            "url": "{baseUrl}/schedule/places/free",
            "security": false
        },
        "schedule-places-occupancy-get": {
            "method": "get",
            "url": "{baseUrl}/schedule/places/occupancy/{placeId}",
            "security": false
        },
        "account-login-post": {
            "method": "get",
            "url": "{baseUrl}/account/login.json",
            "security": false
        },
        "account-login-post-get": {
            "method": "get",
            "url": "{baseUrl}/account/login.json",
            "security": false
        },
        "account-lk-token-get": {
            "method": "get",
            "url": "{baseUrl}/account/getLkToken",
            "security": false
        },
        "account-peoples-classmates-get": {
            "method": "get",
            "url": "{baseUrl}/account/peoples/classmates.json",
            "security": false
        },
        "account-peoples-students-get": {
            "method": "get",
            "url": "{baseUrl}/account/peoples/students.json",
            "security": false
        },
        "account-peoples-teachers-get": {
            "method": "get",
            "url": "{baseUrl}/account/peoples/teachers.json",
            "security": false
        },
        "account-applications-get": {
            "method": "get",
            "url": "{baseUrl}/account/applications.json",
            "security": false
        },
        "account-performance-get": {
            "method": "get",
            "url": "{baseUrl}/account/performance.json",
            "security": false
        },
        "account-personal-get": {
            "method": "get",
            "url": "{baseUrl}/account/personal.json",
            "security": false
        },
        "account-payments-get": {
            "method": "get",
            "url": "{baseUrl}/account/payments.json",
            "security": false
        }
    }
}

Этот контракт описывает конечные точки для получения расписания, информации о преподавателях, студентах и других данных, необходимых для работы мобильного приложения Edugma.