Как реализовать функции API, не являющиеся конечными точками? - PullRequest
0 голосов
/ 22 октября 2019

Это вопрос довольно высокого уровня, но я не смог найти ничего, что объясняет это в другом месте:

У меня есть представление на основе классов django с конечными точками (GET, POST), но у меня есть другой метод, которыйне конечная точка, но я хотел бы включить ее в методы GET / POST. Какова была бы лучшая практика для реализации этого?

Например:

class users(APIView):

    def get(self, request):
        # get method
        helperFunction()

    def post(self, request):
        # post method
        helperFunction()

    def helperFunction():
        # not an endpoint

Это был бы правильный способ сделать что-то подобное? Должен ли helperFunction () быть автономной функцией вне класса? Или не относящиеся к конечной точке методы должны быть в отдельном классе?

Извинения за отсутствие специфичности.

1 Ответ

1 голос
/ 22 октября 2019

выберите местоположение на основе данных, которые использует функция.

  1. Если он должен обрабатывать данные , относящиеся только к экземпляру класса , тогда да, он принадлежит классу
  2. Если он должен обработать данные , которые зависят от типа класса , добавить его в качестве статического метода в классе и передать его конкретному экземпляру, который необходимо обработать
  3. Если он должен обрабатывать данные , которые являются общими для набора классов , они могут либо создать абстрактный класс, поместить его туда и наследовать все классы, которые используют функцию из негоили сделать его внешним (см. последний вариант)

  4. Если оно имеет общего назначения - как форматирование времени, например , добавьте егоглобальное пространство. Теперь в идеале вы хотели бы иметь отдельный файл, в котором все кучки дерьма, это облегчает поддержку базы кода. В действительности, однако, может быть лучше сохранить его в файле, где находится ваш класс (при условии, что другие классы, которые его используют, находятся в том же файле)

...