Как преобразовать представления api на базе функций в представления api на базе классов?
В моем проекте есть следующие 4 API (представление API на основе функций)
save_user()
login_user()
get_user_info()
update_user()
Я хочу преобразовать его в представление API базы классов
class UserApi(APIView):
def post():
#save user
def get():
#for get user info
def put():
#for update user info
так как же использовать login() в базовом представлении класса. ИЛИ использовать функцию базового представления для входа в систему?
Использовать смесь API представления на основе классов и API представления на основе функций в одном файле views.py - это хорошо или плохо?
Для входа в систему пользователь должен указать имя пользователя и пароль. Это будет HTTP post запрос. Вы можете создать представление на основе класса только для post для входа в систему и определить конечную точку URL.
class Login(APIView):
def post(self, request, format=None):
# authentication related code
urlpatterns = [
path('login/', Login.as_view()),
]
Основное преимущество использования представлений на основе классов заключается в разделении методов HTTP (get, post, put, delete) и написании повторно используемого кода. DRF предоставляет общие представления на основе классов, которые могут быть использованы для общей функциональности с меньшим количеством кода.
Для функциональности входа в систему наличие представления на основе классов полезно, если у вас есть аутентификация на основе токенов. Поскольку вы не упомянули об этом, я бы сказал, что наличие представлений на основе классов для login и user будет полезно для согласованности и читабельности. Не существует правила, что нельзя смешивать представления на основе классов и представления на основе функций; это зависит от того, чего вы пытаетесь достичь, и одно не обязательно лучше или хуже другого.