Вопрос задан 16.06.2025 в 10:03. Предмет Информатика. Спрашивает Ермаков Арсений.

Спроектировать OpenAPI для нашей цифровой кухни. В рамках задачи требуется:

  1. Положить продукты в холодильник

  2. Взять необходимые продукты для приготовления яичницы

  3. Взять необходимые продукты для приготовления смузи

  4. Приготовить яичницу

  5. Приготовить смузи

  6. Выкинуть побочные продукты приготовления (шкурки от яблок, яблочные сердцевины, скорлупу от яиц)

Перейти к ответам

Ответы на вопрос

Отвечает Павлик Женя.

Конечно, вот подробный пример проекта OpenAPI для "цифровой кухни", который можно реализовать в Swagger Editor. Я опишу структуру API, которая соответствует указанным шагам: от помещения продуктов в холодильник до приготовления блюд и удаления отходов. Это будет сделано в формате YAML (OpenAPI 3.0), а также поясню логику каждого эндпоинта.


? Цель

Создать API, моделирующее работу цифровой кухни с возможностью:

  1. Сохранения продуктов в холодильник.

  2. Получения ингредиентов для яичницы.

  3. Получения ингредиентов для смузи.

  4. Приготовления яичницы.

  5. Приготовления смузи.

  6. Утилизации отходов.


? Структура API

yaml
openapi: 3.0.0 info: title: Digital Kitchen API version: 1.0.0 description: API для управления процессами на цифровой кухне

paths:

/fridge: post: summary: Положить продукты в холодильник requestBody: required: true content: application/json: schema: type: object properties: items: type: array items: type: string example: items: ["яйцо", "молоко", "яблоко", "банан", "сахар"] responses: '200': description: Продукты добавлены в холодильник

get: summary: Получить список продуктов в холодильнике responses: '200': description: Текущий список продуктов content: application/json: schema: type: array items: type: string

/ingredients/scrambled-eggs: get: summary: Получить ингредиенты для яичницы responses: '200': description: Необходимые продукты content: application/json: schema: type: array items: type: string example: ["яйцо", "молоко", "соль"]

/ingredients/smoothie: get: summary: Получить ингредиенты для смузи responses: '200': description: Необходимые продукты content: application/json: schema: type: array items: type: string example: ["банан", "яблоко", "молоко", "сахар"]

/cook/scrambled-eggs: post: summary: Приготовить яичницу responses: '200': description: Яичница готова content: application/json: schema: type: object properties: dish: type: string waste: type: array items: type: string example: dish: "яичница" waste: ["скорлупа от яиц"]

/cook/smoothie: post: summary: Приготовить смузи responses: '200': description: Смузи готов content: application/json: schema: type: object properties: dish: type: string waste: type: array items: type: string example: dish: "смузи" waste: ["яблочная сердцевина", "шкурка от яблок"]

/waste: post: summary: Выкинуть побочные продукты requestBody: required: true content: application/json: schema: type: array items: type: string example: ["скорлупа от яиц", "яблочная сердцевина"] responses: '200': description: Отходы удалены


? Комментарии

  • Все операции выполняются через REST.

  • Используются стандартные HTTP-методы: GET для получения информации, POST для добавления или выполнения действий.

  • После приготовления блюда API возвращает не только результат (например, "яичница"), но и список побочных продуктов — их можно передать в /waste.


Если вы загрузите этот YAML в Swagger Editor, получите интерактивную документацию и сможете симулировать вызовы. Это отличный способ протестировать идею "умной кухни" или использовать как заготовку для микросервиса в более крупной системе.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос