Как избежать этого ненужного преобразования объектов между API Swagger? - PullRequest
0 голосов
/ 02 марта 2020

Скажем, у меня есть два API (A и B), которые "разделяют" общее определение объекта.

Например, оба используют одно и то же определение Customer. Сгенерированный класс будет выглядеть примерно так: com.apia.model.Customer в API A и com.apib.model.Customer в API B. В моем случае использования API A должен вызывать API B, эффективно передавая объект Customer , Но поскольку они предназначены для разделения классов, мне нужно преобразовать из API-A-Customer в API-B-Customer .

Как можно избежать это?

Примечание : само преобразование не сложно; поскольку это одни и те же определения, может быть автоматизирован очень легко. Возможно, мне хотелось бы иметь оба определения в одном и том же пространстве имен или спроектировать API так, чтобы Codegen распознал, что это один и тот же объект. Бонусные баллы за не взлом Swagger-UI. Я уже пытался вырезать объект в отдельном файле YAML и импортировать его в оба API, но это, похоже, не влияет на Codegen. Также было замечено много открытых и закрытых проблем на Github , которые неопределенно относятся к моей проблеме, но не имеют конкретных решений.


Рабочий процесс:

  • Некоторые API A конечная точка вызывается с некоторым параметром, являющимся экземпляром com.apia.model.Customer
  • Приложение преобразует его в com.apib.model.Customer - , это шаг, который я хочу избежать
  • Приложение вызывает соответствующую конечную точку API B, используя объект com.apib.model.Customer в качестве параметра
  • Ответы передаются обратно исходному клиенту (здесь речь не идет)
...