Я хочу найти метод, позволяющий избежать сложности и связанности в моделях django + rest api
Я создал модель для API. После этого я планировал добавить еще несколько API с разных платформ. Однако все API были предназначены для одной и той же цели, но данные, которые им требовались, и их методы получения данных отличались.
Например. (это просто пример, чтобы объяснить, не реальный случай, но на 90% похожий)
Я создаю модель с атрибутами (name, email, password
), но второй API использует (firstname, lastname, email, password
). Возможно, третий API попросит (Surname, country, oassword
) и т. д.
Затем я захотел создать представление для выполнения CRUD-операций. Но чтобы знать, какую операцию нужно выполнить для того или иного API, я создал класс с именем CRUD handler, в котором класс будет указывать, какой API использовать. Я также создал другой класс с именем 'BOT', который имел уникальный секретный ключ для идентификации того, какой пользователь хочет использовать тот или иной API. Чтобы каждый раз не отправлять учетные данные для безопасности. Почти все они используют/поддерживают фреймворк REST
Вот поток, который мне нужен:
some_other_WEbsite -> (sends data with secret key) -> djangoview -> BOT ->(uses secret key) to identify the USER, the API -> uses function to perform any CRUD operation.
Вопрос в следующем:
если я добавлю (name, firstname, lastname, surname, country, email, password
) в качестве атрибутов в одну модель, модель будет использовать больше места, условия увеличатся и т.д.
Есть ли что-то, что я могу сделать, чтобы справиться с этой сложностью? Любое предложение будет оценено по достоинству.
На данный момент я создал разные модели с разными атрибутами для родственных API, например
API1 = name, email, password
API2 = firstname, lastname, email, password
API3 = Surname, country, password
изменил BOT следующим образом:
БОТ = botname, unique_secret_key, API1, API2, API3.
После этого, технически говоря, пользователь может добавить 3 API в одного бота, только я не разрешаю этого с фронтенда, который я не хочу создавать путаницу или увеличивать условия if/else. например, он может случайно добавить детали API1 в поля API2 или что-то еще.