FastAPI: как создать две записи, которые имеют свои сервисы, в одном сервисе?

Чтобы создать две записи с отдельными сервисами в одном сервисе с использованием FastAPI, вам потребуется создать два пути (endpoints) в вашем приложении, каждый из которых будет обрабатывать соответствующую запись и связанный с ней сервис.

Продолжая, предположим, что у вас есть две записи - "Запись 1" и "Запись 2", и каждая запись имеет свой собственный сервис.

Сначала вам нужно импортировать необходимые классы и функции FastAPI:

from fastapi import FastAPI
from pydantic import BaseModel

Затем создайте экземпляр вашего приложения FastAPI:

app = FastAPI()

Определим модели данных для записей и сервисов. Предположим, что каждая запись имеет уникальный идентификатор (id) и имя (name), а каждый сервис имеет свой уникальный идентификатор (id) и название (name):

class Record(BaseModel):
    id: int
    name: str
    
class Service(BaseModel):
    id: int
    name: str

Создайте два пути (endpoints) - один для каждой записи и ее сервиса. Назовем пути create_record1 и create_record2:

@app.post("/create_record1")
def create_record1(record: Record):
    # Ваш код для создания "Запись 1"
    return {"message": "Запись 1 создана успешно"}

@app.post("/create_record2")
def create_record2(record: Record):
    # Ваш код для создания "Запись 2"
    return {"message": "Запись 2 создана успешно"}

Вы можете добавить в каждый из этих путей нужную логику для создания соответствующей записи и ее сервиса в вашей базе данных или файловой системе.

Теперь, когда у вас есть два пути для создания каждой записи и ее сервиса, вы можете отправлять запросы на соответствующие эндпоинты, указывая данные для каждой записи и сервиса.

Например, чтобы создать "Запись 1" и связанный с ней сервис, вы можете отправить POST-запрос на http://localhost:8000/create_record1 со следующим телом запроса:

{
    "id": 1,
    "name": "Запись 1"
}

Аналогично, для создания "Записи 2" и связанного сервиса, отправьте POST-запрос на http://localhost:8000/create_record2 со следующим телом запроса:

{
    "id": 2,
    "name": "Запись 2"
}

Вам также может потребоваться добавить дополнительную логику в своих путях, например, валидацию данных или взаимодействие с базой данных. Конкретные детали и реализация могут варьироваться в зависимости от вашей конкретной задачи и требований.