Как преобразовать представления 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 будет полезно для согласованности и читабельности. Не существует правила, что нельзя смешивать представления на основе классов и представления на основе функций; это зависит от того, чего вы пытаетесь достичь, и одно не обязательно лучше или хуже другого.

Вернуться на верх