Аутентификация для генератора открытого API

#openapi #openapi-generator

#openapi #openapi-генератор

Вопрос:

Прошу прощения, если на этот вопрос уже был дан ответ, но я не могу найти четкого ответа.

Поддерживает ли текущий генератор аутентификацию?

Мне нужно сгенерировать клиент с 2 потенциальными способами аутентификации:

  1. Через ключ API, что означает обязательный api_token параметр.
  2. Через поток кода аутентификации OAuth 2.

Если это произойдет, как мне это использовать?

Если этого не произойдет, как вы думаете, какой наилучший способ добавить аутентификацию после генерации клиента?

Ответ №1:

Учитывая, что генератор OpenAPI может взаимодействовать с любым сервером, который предоставляет документ OpenAPI, из этого следует, что сначала нужен документ OpenAPI, который использует термин схемы безопасности для аутентификации и авторизации. OpenAPI 3.0 (и 2.0) позволяет описать два желаемых подхода к аутентификации.

Как только документ OpenAPI в формате .yaml or .json будет создан, я полагаю, что инструкции по началу работы описывают команды, необходимые для генерации заглушек сервера для аутентификации на основе документа OpenAPI, который вы создали для вашего потока аутентификации.

Например, если ваш документ OpenAPI окажется примером Swagger Petstore, вы бы «сгенерировали» таким образом:

генерируется npx openapi-генератор -я в petstore.yaml -g ruby -o /tmp/test/

Комментарии:

1. У нас есть незавершенный запрос на добавление матрицы функций (аналогично тому, что вы найдете на jwt.io может быть?). Не все генераторы поддерживают все типы аутентификации, и изменения безопасности OpenAPI 3.0 частично реализованы. Для api_key и oauth большинство генераторов имеют отличную поддержку. Одна сложность в вопросе OP… В спецификации OpenAPI указано, что объекты требований безопасности, которые содержат несколько схем, требуют, чтобы все схемы БЫЛИ удовлетворены для авторизации запроса. Это означает, что несколько схем не являются либо-либо такими, как запрашивается.

2. операционная система запросила помощь по реализации OAuth 2 на стороне клиента , а не на сервере.