Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

Latest commit

 

History

History
681 lines (652 loc) · 28 KB

README_frontend.md

File metadata and controls

681 lines (652 loc) · 28 KB

Документация API v1 для фронтенда

Note: str:encoded_part - это 16-ти символьная (пример: 84e53cab68407098) уникальная для каждого участника строка, которая позволяет отправлять работы, проверки и просматривать результаты недели без аутентификации на сайте.

Note: При выводе списков используется пагинация. По умолчанию размер одной страницы - 50 элементов. Для доступа к следующей группе элементов надо делать запрос по ключу next.

Отправка сочинения

encoded-form-urls/work/str:encoded_part/

GET

Возвращает данные о тексте неделе, статусе отправки работы.

  • До отправки сочинения:
{
    "essay_already_sent": false,
    "essay": null,
    "task": {
        "week_id": {
            "study_year_from": 2022,
            "study_year_to": 2023,
            "week_number": 1
        },
        "body": "(1) Внутри дворца господствовали мрак и тишина. (2) И внутрь прокуратор, как и говорил Афранию, уйти не пожелал. (3) Он велел постель приготовить на балконе, там же, где обедал, а утром...",
        "author": "по М. А. Булгакову",
        "author_description": "Михаил Афанасьевич Булгаков (1891—1940) — русский писатель и драматург. Автор романов, повестей, сборников рассказов, фельетонов и около двух десятков пьес."
    }
}
  • После отправки сочинения:
{
    "essay_already_sent": true,
    "essay": {
        "body": "Что движет солдатами, которые готовы добровольно пожертвовать своей жизнью? Эту проблему рассматривает Л.А. Кассиль в предложенном для анализа тексте. Размышляя...",
        "created_at": "2022-08-28T01:22:27+03:00"
    },
    "task": {
        "week_id": {
            "study_year_from": 2022,
            "study_year_to": 2023,
            "week_number": 1
        },
        "body": "(1) Внутри дворца господствовали мрак и тишина. (2) И внутрь прокуратор, как и говорил Афранию, уйти не пожелал. (3) Он велел постель приготовить на балконе, там же, где обедал, а утром...",
        "author": "по М. А. Булгакову",
        "author_description": "Михаил Афанасьевич Булгаков (1891—1940) — русский писатель и драматург. Автор романов, повестей, сборников рассказов, фельетонов и около двух десятков пьес."
    }
}

rus/essay/form-url/str:encoded_part/post/

POST

Отправляет сочинение используя лишь str:encoded_part и тело сочинения.

  • Запрос:
{
    "body": "Что движет солдатами, которые готовы добровольно пожертвовать своей жизнью? Эту проблему рассматривает Л.А. Кассиль в предложенном для анализа тексте. Размышляя..."
}
  • Ответ:
{
  "created_at": "2022-08-11T01:12:36.807958+03:00",
  "body": "Что движет солдатами, которые готовы добровольно пожертвовать своей жизнью? Эту проблему рассматривает Л.А. Кассиль в предложенном для анализа тексте. Размышляя..."
}

rus/essay/form-url/str:encoded_part/edit/

PUT, PATCH

Изменяет сочинение.

  • Запрос:
{
    "body": "Какой поступок можно назвать подвигом? Ответ на этот вопрос можно найти в предложенном для анализа тексте. Рассмотрим эпизод..."
}
  • Ответ:
{
  "created_at": "2022-08-11T01:12:36.807958+03:00",
  "body": "Какой поступок можно назвать подвигом? Ответ на этот вопрос можно найти в предложенном для анализа тексте. Рассмотрим эпизод..."
}

Отправка проверки

encoded-form-urls/evaluation/str:encoded_part/

GET

Возвращает данные о тексте неделе, список ключей к тексту, статусе отправки проверки, список комментариев к выделенным фрагментам.

  • До отправки проверки:
{
    "evaluation_already_sent": false,
    "evaluation": null,
    "essay": {
        "body": "Какую роль играет совесть в жизни человека? Этой проблеме посвящен текст М.А. Булгакова.\nЧтобы привлечь внимание читателей к этому вопросу, автор рассказывает о...",
        "created_at": "2022-08-25T16:13:21.172161+03:00"
    },
    "task": {
        "week_id": {
            "study_year_from": 2022,
            "study_year_to": 2023,
            "week_number": 1
        },
        "body": "(1) Внутри дворца господствовали мрак и тишина. (2) И внутрь прокуратор, как и говорил Афранию, уйти не пожелал. (3) Он велел постель приготовить на балконе, там же,..",
        "author": "по М. А. Булгакову",
        "author_description": "Михаил Афанасьевич Булгаков (1891—1940) — русский писатель и драматург. Автор романов, повестей, сборников рассказов, фельетонов и около двух десятков пьес."
    },
    "task_keys": [
        {
            "range_of_problems": "Проблема совести. (Что происходит с человеком, если он совершает поступок против своей совести?)",
            "authors_position": "Человек лишается духовной и душевной гармонии, совершая поступки против собственной совести."
        },
        {
            "range_of_problems": "Проблема нравственного выбора человека в сложной жизненной ситуации. (Как поступить в сложной жизненной ситуации, если существует свобода выбора?)",
            "authors_position": "Находясь в ситуации нравственного выбора, каждый из нас должен руководствоваться собственной совестью, чтобы потом всю оставшуюся жизнь мучительно не..."
        },
        {
            "range_of_problems": "Проблема трусости как одного из самых страшных пороков. (Почему трусость является одним из самых страшных пороков?)",
            "authors_position": "Боясь кесаря и не желая пожертвовать своей карьерой (лишиться должности прокуратора), Понтий Пилат поступает не по ..."
        }
    ]
}
  • После отправки проверки:
{
    "evaluation_already_sent": true,
    "evaluation": {
        "criteria": {
            "id": "f065a890-23c2-4df2-9101-9b430286a855",
            "k1": 1,
            "k2": 4,
            "k3": 1,
            "k4": 1,
            "k5": 1,
            "k6": 0,
            "k7": 0,
            "k8": 0,
            "k9": 0,
            "k10": 1,
            "k11": 1,
            "k12": 1
        },
        "created_at": "2022-09-04T00:19:17.193633+03:00",
        "selections_review": [
            {
                "start_selection_char_index": 1,
                "selection_length": 5,
                "evaluator_comment": "Тут ты совершил фатальную ошибку",
                "mistake_type": "K12"
            }
        ]
    },
    "essay": {
        "body": "string",
        "created_at": "2022-08-30T02:26:55.621984+03:00"
    },
    "task": {
        "week_id": {
            "study_year_from": 2022,
            "study_year_to": 2023,
            "week_number": 1
        },
        "body": "(1) Внутри дворца господствовали мрак и тишина. (2) И внутрь прокуратор, как и говорил Афранию, уйти не пожелал. (3) Он велел постель приготовить на балконе, там же,..",
        "author": "по М. А. Булгакову",
        "author_description": "Михаил Афанасьевич Булгаков (1891—1940) — русский писатель и драматург. Автор романов, повестей, сборников рассказов, фельетонов и около двух десятков пьес."
    },
    "task_keys": [
        {
            "range_of_problems": "Проблема совести. (Что происходит с человеком, если он совершает поступок против своей совести?)",
            "authors_position": "Человек лишается духовной и душевной гармонии, совершая поступки против собственной совести."
        },
        {
            "range_of_problems": "Проблема нравственного выбора человека в сложной жизненной ситуации. (Как поступить в сложной жизненной ситуации, если существует свобода выбора?)",
            "authors_position": "Находясь в ситуации нравственного выбора, каждый из нас должен руководствоваться собственной совестью, чтобы потом всю оставшуюся жизнь мучительно не..."
        },
        {
            "range_of_problems": "Проблема трусости как одного из самых страшных пороков. (Почему трусость является одним из самых страшных пороков?)",
            "authors_position": "Боясь кесаря и не желая пожертвовать своей карьерой (лишиться должности прокуратора), Понтий Пилат поступает не по ..."
        }
    ]
}

api/v1/rus/evaluation/form-url/str:encoded_part/post/

POST

Отправляет проверку по критериям.

  • Запрос:
{
  "criteria": {
    "k1": 1,
    "k2": 4,
    "k3": 1,
    "k4": 1,
    "k5": 1,
    "k6": 1,
    "k7": 1,
    "k8": 0,
    "k9": 0,
    "k10": 1,
    "k11": 1,
    "k12": 1
  }
}
  • Ответ:
{
  "criteria": {
    "id": "30476e11-db08-4762-a133-83736e7a50a8",
    "k1": 1,
    "k2": 4,
    "k3": 1,
    "k4": 1,
    "k5": 1,
    "k6": 1,
    "k7": 1,
    "k8": 0,
    "k9": 0,
    "k10": 1,
    "k11": 1,
    "k12": 1
  },
  "created_at": "2022-08-11T02:14:20.190380+03:00",
  "selections_review": [
    {
      "start_selection_char_index": 1,
      "selection_length": 5,
      "evaluator_comment": "Тут ты совершил фатальную ошибку",
      "mistake_type": "K12"
    }
]
}

api/v1/rus/evaluation/form-url/str:encoded_part/edit/

PUT, PATCH

Изменяет проверку по критериям.

  • Запрос:
{
  "criteria": {
    "k1": 0,
    "k2": 6,
    "k3": 0,
    "k4": 0,
    "k5": 0,
    "k6": 0,
    "k7": 1,
    "k8": 0,
    "k9": 0,
    "k10": 1,
    "k11": 1,
    "k12": 1
  }
}
  • Ответ:
{
    "criteria": {
        "id": "f065a890-23c2-4df2-9101-9b430286a855",
        "k1": 0,
        "k2": 6,
        "k3": 0,
        "k4": 0,
        "k5": 0,
        "k6": 0,
        "k7": 1,
        "k8": 0,
        "k9": 0,
        "k10": 1,
        "k11": 1,
        "k12": 1
    },
    "created_at": "2022-09-04T00:19:17.193633+03:00",
    "selections_review": [
        {
            "start_selection_char_index": 1,
            "selection_length": 5,
            "evaluator_comment": "Тут ты совершил фатальную ошибку",
            "mistake_type": "K12"
        }
    ]
}

rus/evaluation/selection_review/form-url/str:encoded_part/post/

POST

Отправляет проверку одного выделенного фрагмента.

Note:

  • Индексация start_selection_char_index начинается с 0.
  • Длина selection_length - целое число, не меньшее 1.
  • Запрос:
{
    "start_selection_char_index": 5,
    "selection_length": 15,
    "evaluator_comment": "Мой комментарий, длина которого 15!!!!",
    "mistake_type": "K09"
}

Note: В примере выше start_selection_char_index = 5, а selection_length = 15, поэтому выделенный фрагмент начнётся с 6 по счету символу и закончится 20 по счету включительно символом. Пример: ааааа[ааааааааааааааа]аааааааааа

  • Ответ:
{
    "start_selection_char_index": 5,
    "selection_length": 15,
    "evaluator_comment": "Мой комментарий, длина которого 15!!!!",
    "mistake_type": "K09"
}

rus/evaluation/selection_review/form-url/str:encoded_part/edit/int:start_selection_char_index/int:selection_length/

PUT, PATCH

Изменяет проверку одного выделенного фрагмента.

  • Запрос:
{
    "evaluator_comment": "В PUT, PATCH запросах возможно изменение только тела и типа ошибки, но не индекса и длины!!",
    "mistake_type": "K10"
}
  • Ответ:
{
    "evaluator_comment": "В PUT, PATCH запросах возможно изменение только тела и типа ошибки, но не индекса и длины!!",
    "mistake_type": "K10"
}

Просмотр результатов недели

encoded-form-urls/results/str:encoded_part/

GET

Возвращает список проверок.

[
    {
        "criteria": {
            "id": "1573522d-db83-46ec-b78e-7ae4d7a808bc",
            "k1": 0,
            "k2": 1,
            "k3": 1,
            "k4": 1,
            "k5": 1,
            "k6": 1,
            "k7": 1,
            "k8": 2,
            "k9": 2,
            "k10": 1,
            "k11": 1,
            "k12": 0
        },
        "created_at": "2022-08-25T16:13:26.046707+03:00",
        "selections_review": [
            {
                "start_selection_char_index": 5,
                "selection_length": 15,
                "evaluator_comment": "В PUT, PATCH запросах возможно изменение только тела и типа ошибки, но не индекса и длины!!",
                "mistake_type": "K10"
            },
            {
                "start_selection_char_index": 1,
                "selection_length": 14,
                "evaluator_comment": "проверка 2",
                "mistake_type": "K09"
            }
        ]
    },
    {
        "criteria": {
            "id": "4083253b-804b-43f4-9806-ea9e403142e6",
            "k1": 1,
            "k2": 0,
            "k3": 0,
            "k4": 0,
            "k5": 2,
            "k6": 1,
            "k7": 2,
            "k8": 1,
            "k9": 2,
            "k10": 2,
            "k11": 1,
            "k12": 1
        },
        "created_at": "2022-08-25T16:13:26.455556+03:00",
        "selections_review": []
    }
]

rus/text/get_by_results_form_url/str:encoded_part/

GET

Возвращает текст по ссылке на результаты недели.

{
  "week_id": {
    "study_year_from": 2022,
    "study_year_to": 2023,
    "week_number": 2
  },
  "body": "Ничто так не мешает улучшению жизни людей, как то, что они хотят...",
  "author": "(по Л. Толстому)",
  "author_description": "Лев Николаевич Толстой — один из наиболее известных русских писателей и мыслителей, один из величайших писателей-романистов мира.",
  "keys": [
    {
      "range_of_problems": "Проблема соотношения цели и средств её осуществления (какими средствами должно пользоваться государство, чтобы поощрять граждан?)",
      "authors_position": "Если у государства хватает средств на справедливую оплату, то лучше заплатить труженику, чем дать ему награду. Награду стоит давать за настоящие подвиги, совершая которые, человек «ставит на карту свое имя, репутацию, семью, здоровье, самою жизнь»."
    }
  ]
}

rus/results/rate_essay_evaluation/str:encoded_part/post/

POST

Оценка проверки (звёзды от 1 до 5 включительно).

Note: Изменение (PUT, PATCH) не поддерживается, поскольку при POST рейтинг проверяющего изменяется перманентно.

  • Запрос:
{
    "score": 4,
    "evaluation_criteria": "30476e11-db08-4762-a133-83736e7a50a8"
}
  • Ответ:
{
  "score": 4,
  "evaluation_criteria": "30476e11-db08-4762-a133-83736e7a50a8"
}

Просмотр работ за всё время (доступно без str:encoded_part, то есть всем желающим)

rus/results/

GET

Возвращает список всех сочинений с их баллами, полученных на проверках.

Note: criteria_score - балл одной проверки. Число в диапазоне от 0 до 25. Доступны query-параметры для фильтрации:

  • task__week_id__study_year_from - учебный год
  • task__week_id__week_number - номер недели
{
  "count": 4,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "d2a22fcb-710f-4e56-8567-9aaffdce1b12",
      "week_id": "2022-2023_01",
      "body": "essay1",
      "evaluations": []
    },
    {
      "id": "c27d80fc-85db-4ce9-b384-6752e7639c92",
      "week_id": "2022-2023_01",
      "body": "essay2",
      "evaluations": [
        {
          "criteria_score": 6
        },
        {
          "criteria_score": 3
        }
      ]
    },
    {
      "id": "4f44ae26-2f1e-43f6-becf-234e4c68ab4f",
      "week_id": "2022-2023_01",
      "body": "essay3",
      "evaluations": []
    },
    {
      "id": "b4ae5feb-1593-45b5-908c-0d086c0c6752",
      "week_id": "2022-2023_01",
      "body": "essay4",
      "evaluations": []
    }
  ]
}

rus/text/list_all/

GET

Возвращает список всех текстов и номеров недель.

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "89d18638-7859-4c52-9233-8c6128960957",
      "week_id": {
        "study_year_from": 2022,
        "study_year_to": 2023,
        "week_number": 2
      },
      "author": "(по Л. Толстому)"
    },
    {
      "id": "f947b1b3-e5a0-4633-9a98-90c4ad762be3",
      "week_id": {
        "study_year_from": 2022,
        "study_year_to": 2023,
        "week_number": 1
      },
      "author": "text1"
    }
  ]
}

rus/text/uuid:text/

GET

Возвращает текст по uuid и его номер недели.

{
  "week_id": {
    "study_year_from": 2022,
    "study_year_to": 2023,
    "week_number": 2
  },
  "body": "Ничто так не мешает улучшению жизни людей, как то, что они хотят...",
  "author": "(по Л. Толстому)",
  "author_description": "Лев Николаевич Толстой — один из наиболее известных русских писателей и мыслителей, один из величайших писателей-романистов мира.",
  "keys": [
    {
      "range_of_problems": "Проблема соотношения цели и средств её осуществления (какими средствами должно пользоваться государство, чтобы поощрять граждан?)",
      "authors_position": "Если у государства хватает средств на справедливую оплату, то лучше заплатить труженику, чем дать ему награду. Награду стоит давать за настоящие подвиги, совершая которые, человек «ставит на карту свое имя, репутацию, семью, здоровье, самою жизнь»."
    }
  ]
}

rus/essay/uuid:essay/

GET

Возвращает сочинение по его uuid и все проверки к нему, текст с ключами.

{
    "body": "Какую роль играет совесть в жизни человека? Этой проблеме посвящен текст...",
    "created_at": "2022-08-25T16:13:21.045612+03:00",
    "task": {
        "week_id": {
            "study_year_from": 2022,
            "study_year_to": 2023,
            "week_number": 1
        },
        "body": "(1) Внутри дворца господствовали мрак и тишина. (2) И внутрь прокуратор, как и говорил Афранию, уйти не пожелал. (3) Он велел постель...",
        "author": "по М. А. Булгакову",
        "author_description": "Михаил Афанасьевич Булгаков (1891—1940) — русский писатель и драматург. Автор романов, повестей, сборников рассказов, фельетонов и около двух десятков пьес.",
        "keys": [
            {
                "range_of_problems": "Проблема совести. (Что происходит с человеком, если он совершает поступок против своей совести?)",
                "authors_position": "Человек лишается духовной и душевной гармонии, совершая поступки против собственной совести."
            },
            {
                "range_of_problems": "Проблема нравственного выбора человека в сложной жизненной ситуации. (Как поступить в сложной жизненной ситуации, если существует свобода выбора?)",
                "authors_position": "Находясь в ситуации нравственного выбора, каждый из нас должен руководствоваться собственной совестью, чтобы потом всю оставшуюся жизнь мучительно не сожалеть о содеянном, не имея возможности что-либо исправить."
            },
            {
                "range_of_problems": "Проблема трусости как одного из самых страшных пороков. (Почему трусость является одним из самых страшных пороков?)",
                "authors_position": "Боясь кесаря и не желая пожертвовать своей карьерой (лишиться должности прокуратора), Понтий Пилат поступает не по совести, понимая, что обрекает на смерть безвинного человека."
            }
        ]
    },
    "evaluations": [
        {
            "criteria": {
                "id": "28fd2135-2c31-4ef8-8764-a4ddee9e207b",
                "k1": 0,
                "k2": 0,
                "k3": 0,
                "k4": 0,
                "k5": 2,
                "k6": 2,
                "k7": 1,
                "k8": 2,
                "k9": 2,
                "k10": 2,
                "k11": 1,
                "k12": 1
            },
            "created_at": "2022-08-25T16:13:22.418232+03:00",
            "selections_review": []
        },
        {
            "criteria": {
                "id": "1573522d-db83-46ec-b78e-7ae4d7a808bc",
                "k1": 0,
                "k2": 1,
                "k3": 1,
                "k4": 1,
                "k5": 1,
                "k6": 1,
                "k7": 1,
                "k8": 2,
                "k9": 2,
                "k10": 1,
                "k11": 1,
                "k12": 0
            },
            "created_at": "2022-08-25T16:13:26.046707+03:00",
            "selections_review": [
                {
                    "start_selection_char_index": 5,
                    "selection_length": 15,
                    "evaluator_comment": "В PUT, PATCH запросах возможно изменение только тела и типа ошибки, но не индекса и длины!!",
                    "mistake_type": "K10"
                },
                {
                    "start_selection_char_index": 1,
                    "selection_length": 14,
                    "evaluator_comment": "проверка 2",
                    "mistake_type": "K09"
                }
            ]
        },
        {
            "criteria": {
                "id": "4083253b-804b-43f4-9806-ea9e403142e6",
                "k1": 1,
                "k2": 0,
                "k3": 0,
                "k4": 0,
                "k5": 2,
                "k6": 1,
                "k7": 2,
                "k8": 1,
                "k9": 2,
                "k10": 2,
                "k11": 1,
                "k12": 1
            },
            "created_at": "2022-08-25T16:13:26.455556+03:00",
            "selections_review": []
        }
    ]
}

rus/results/get_rate_by_evaluation_criteria/uuid:evaluation_criteria/

GET

Возвращает оценку, которую автор сочинения поставил проверке.

{
  "score": 4,
  "evaluation_criteria": "590eca87-1bf5-4428-900a-0b53756af765"
}

Получение времени конца этапа и времени сервера

control/get_current_stage_end_time/

GET

Возвращает время конца текущего этапа, время сервера и текущий этап.

Note: Формат времени представлен в формате ISO 8601.

{
  "current_stage": "S4",
  "time": {
    "server_current": "2022-08-17T02:06:18.243818",
    "stage_end": "2022-08-18T00:00:00"
  }
}