Я использую django, django drf и drf-yasg для генерации, записи моего BE и генерации документации.
У меня есть модель с именем User и сериализатор для пользователя:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = users_models.User
fields = (users_models.User.first_name.field_name,
users_models.User.last_name.field_name,)
и у меня есть метод Foo, который получает двух пользователей. Вот как выглядит сериализатор для запроса:
class FooRequestSerializer(serializers.ModelSerializer):
first_user = UserSerializer(help_text="first user")
second_user = UserSerializer(help_text="second user")
, когда я генерирую схему swagger json, для этого я вижу json и повтор c Я вижу, что:
- first_user и second_user имеют одно и то же имя ref ($ ref)
- Описание second_user и redo c гласит «первый пользователь», а не второй пользователь. это потому, что описание взято из $ ref, в котором есть первое описание пользователя.
Я заметил, что если я удостоверился, что имена ссылок различны, то повтор c читается нормально, так как first_user и second_user получают свое собственное описание. Проблема возникает потому, что я также хочу иметь возможность позже использовать swagger codegen для создания заглушек Java, поэтому решение и, насколько я понимаю, есть разные классы для каждого отдельного имени ссылки. В идеале я хотел бы видеть, что вызов foo - это что-то вроде
Foo(User first_user, User second_user)
. Это приводит меня к проблеме, что:
- Если first_user и second_user имеют одно и то же имя ref, тогда redo c читает неправильно, и у второго пользователя есть первое описание пользователя.
Если first_user и second_user имеют разные имена ссылок, тогда повтор c работает, но я сгенерировал два класса disticnt, скажем
Foo (FirstUser first_user, SecondUser second_user)
Что нужно сделать, чтобы иметь как работающий повтор c, так и сгенерированные классы, как и ожидалось?