Перейти к основному содержимому

Настройка Swagger для API сервиса бизнес-логики

Настройка Swagger для API сервиса бизнес-логики включает следующие действия:

  1. Изменение базового URL-адреса сервиса в связи с использованием прокси-сервера Nginx.

    Сервисы Атомкод доступны через прокси-сервер Nginx, поэтому к стандартным URL-адресам API и документации Swagger добавлен префикс /services/service_name. Например, вместо URL-адреса https://host.name/method/get используется URL-адрес https://host.name/services/service_name/method/get.

    Следующий блок кода демонстрирует Java-класс, который управляет формированием префикса URL-адреса в Swagger.

    ru.platform.starterConfiguration.swagger.PlatformSwaggerConfiguration#buildUriPrefix

    Следующий блок кода файла application.yaml демонстрирует конфигурацию Swagger с помощью Spring Boot Starter.

    platform:
    swagger:
    starter:
    enabled: true
    use-service-prefix: true

    Следующий блок кода файла build.gradle демонстрирует подключение зависимости от библиотеки SpringDoc OpenAPI Starter WebMvc UI версии 2.8.6 с целью автоматической генерации документации по API.

    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6'
  2. Указание имени клиента для авторизации в Swagger.

    Следующий блок кода файла application.yaml демонстрирует настройку авторизации Swagger.

    platform:
    swagger:
    starter:
    enabled: true
    identity-client-id: mdcamundaproxy-swagger
  3. Описание разделов для системных и прикладных методов сервиса бизнес-логики.

    Следующий блок кода файла application.yaml демонстрирует настройку группировки и разделение API на системные и прикладные методы в интерфейсе Swagger.

    springdoc:
    api-docs:
    cache:
    disabled: true #{PlatformSwaggerFunctional}
    groups:
    enabled: true #{PlatformSwaggerFunctional}
    webjars:
    prefix: / #{PlatformSwaggerFunctional}
    swagger-ui:
    path: /index.html #{PlatformSwaggerFunctional}
    enabled: true #{PlatformSwaggerFunctional}
    config-url: /v3/api-docs/swagger-config #{PlatformSwaggerFunctional} при развертывании на стенде добавить префикс /services/{serviceName}/v3/api-docs/swagger-config
    disable-swagger-default-url: true #{PlatformSwaggerFunctional}
    oauth2-redirect-url: /swagger-ui/oauth2-redirect.html #{PlatformSwaggerFunctional} при развертывании на стенде добавить префикс /services/{serviceName}/swagger-ui/oauth2-redirect.html
    validator-url: none #{PlatformSwaggerFunctional}
    deep-linking: true #{PlatformSwaggerFunctional}
    syntax-highlight: #{PlatformSwaggerFunctional}
    activated: true #{PlatformSwaggerFunctional}
    urls:
    - url: /v3/api-docs/System #{PlatformSwaggerFunctional} при развертывании на стенде добавить префикс /services/{serviceName}/
    name: system #{PlatformSwaggerFunctional}
    display-name: Системные методы #{PlatformSwaggerFunctional}
    - url: /v3/api-docs/demo #{PlatformSwaggerFunctional}
    name: demo #{PlatformSwaggerFunctional}
    display-name: Swagger demo методы #{PlatformSwaggerFunctional} при развертывании на стенде добавить префикс /services/{serviceName}/
  4. Настройка документации Swagger.

    Чтобы настроить документацию Swagger:

    1. Создайте класс, расширяющий PlatformSwaggerConfiguration.
    2. Реализуйте необходимые методы.

    Пример реализации доступен в классе ru.platform.example.fastStartComponents.swagger.PlatformSwaggerConfiguration.