Разработать FastAPI‑сервис с меню команд

Сделайте GET /menu для списка команд и POST /menu для выбора. Команда завершения должна завершать пользовательский сценарий, а не останавливать сервер.

Короткий ответ

Что ответить на собеседовании

Сделайте GET /menu для списка команд и POST /menu для выбора. Команда завершения должна завершать пользовательский сценарий, а не останавливать сервер.

Подробный разбор

Ответ с пояснениями

Условие

Реализовать приложение на FastAPI. Добавить маршрут /menu, который:

  • Возвращает перечень доступных команд
  • Принимает номер выбранной команды через запрос (например, POST с JSON‑тело)
  • Выполняет соответствующее действие в зависимости от выбранной команды (заглушки можно реализовать через print или вернуть простое сообщение)

Доступные команды:

  1. Вывести список пользователей
  2. Создать нового пользователя
  3. Удалить пользователя
  4. Завершить работу

Пример тела запроса к /menu:

{
  "command_id": 2
}

Ответ

Сделайте GET /menu для списка команд и POST /menu для выбора. Команда завершения должна завершать пользовательский сценарий, а не останавливать сервер.

from fastapi import FastAPI
from pydantic import BaseModel, Field

app = FastAPI()
COMMANDS = {1: 'Список пользователей', 2: 'Создать пользователя',
            3: 'Удалить пользователя', 4: 'Завершить работу'}

class Choice(BaseModel):
    command_id: int = Field(strict=True, ge=1, le=4)

@app.get('/menu')
def menu():
    return [{'id': key, 'title': value} for key, value in COMMANDS.items()]

@app.post('/menu')
def choose(choice: Choice):
    messages = {1: 'Показ списка: демонстрационный режим',
                2: 'Создание: демонстрационный режим',
                3: 'Удаление: демонстрационный режим',
                4: 'Работа с меню завершена'}
    return {'message': messages[choice.command_id]}

Действия здесь намеренно демонстрационные, как разрешает условие. Для реального создания и удаления понадобятся дополнительные параметры, авторизация и проверки прав. Не выполняйте exit() из HTTP-обработчика.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее