Ссылка OpenApiSpec (swagger) на общие заголовки запросов в каждом пути?

В файле yaml openapi 3.0.0 можно ссылаться на список общих заголовков запросов, которые используются в каждом вызове, а не указывать их снова и снова при каждом вызове?

/some-path:
  get:
    summary: "sample1"
    operationId: doWork
    description: 'description of do work'
    parameters:
      ...
      - in: header
        name: Authorization
        schema: 
          type: string
        required: true
      - in: header
        name: Consumer-Key
        schema: 
          type: string
        required: true
      - in: header
        name: Correlation-Id
        schema:
          type: string
          format: uuid
        required: true

/some-other-path:
  get:
    summary: "sample2"
    operationId: doOtherWork
    description: 'description of do other work'
    parameters:
      ...
      - in: header
        name: Authorization
        schema: 
          type: string
        required: true
      - in: header
        name: Consumer-Key
        schema: 
          type: string
        required: true
      - in: header
        name: Correlation-Id
        schema:
          type: string
          format: uuid
        required: true


я пытался продублировать это......и это работает......но это чертовски уродливо.

Определите заголовки в разделе components один раз и ссылайтесь на них, используя нотацию $ref.

Christoph Dahlen 14.11.2022 21:28

Обратите внимание, что заголовок Authorization ДОЛЖЕН быть определен как схема безопасности, а не параметр, как объяснено в связанных вопросах и ответах.

Helen 14.11.2022 22:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это может быть не тот ответ, который вы хотите. С версией 3.0.3 мы делаем что-то вроде следующего:

openapi: 3.0.3

paths:
  /some-path:
    get:
      summary: "sample1"
      operationId: doWork
      description: 'description of do work'
      parameters:
        ...
        - in: header
          name: Authorization
          schema: 
            type: string
          required: true
        - in: header
          name: Consumer-Key
          schema: 
            type: string
          required: true
        - $ref: '#/components/parameters/__common__correlationId_header'

components:
  parameters:
    __common__correlationId_header:
      in: header
      name: Correlation-Id
      description: common correlation id.
      required: true
      schema:
        type: string
        format: uuid

Спасибо. Я искал одну линию для коллекции, но я выберу этот маршрут в любой день. работает хорошо! спасибо!

Shawzymoto 15.11.2022 17:14

Другие вопросы по теме