Создает ли метод POST новую сущность и возвращает идентификатор этой сущности в openapi 3.0.2? - PullRequest
0 голосов
/ 19 июня 2019

Я понимаю, что метод POST в openapi 3.0.2 должен создать новую сущность и вернуть идентификатор этой сущности.Когда я добавляю дополнительный маршрут к ПОЛУЧИТЬ или УДАЛИТЬ эту сущность по ИД, я получаю ошибку 404.Я не совсем понимаю, почему это может быть.

Вот мой пост и методы получения:

/api/globalorderdays:
post:
  tags:
    - Setup Global Order Days
  summary: Allows user to add order days and holidays to multiple 
           sessions.
  requestBody:
    required: true
    description: put text here
    content:
      application/json:
        schema:
            $ref: '#/components/schemas/GlobalOrderSetupInfo'
  responses:
    201:
      description: Created
    400:
      description: Bad request
    401:
      description: Unauthorized

/api/globalorderdays/{Id}:
get:
  tags:
    - Setup Global Order Days
  summary: put text here
  parameters:
    - in: path
      name: Id
      required: true
      description: put text here
      schema:
        type: integer
        example:
  responses:
    200:
      description: Success
      content:
        application/json:
          schema:
              $ref: '#/components/schemas/GlobalOrderSetupInfo'
    400:
      description: Bad request
    401:
      description: Unauthorized

/api/globalorderdays/{Id}:
delete:
  tags:
    - Setup Global Order Days
  summary: Allows user to delete added order days
  parameters:
    - in: path
      name: Id
      required: true
      description: put text here
      schema:
        type: integer
        example:
  responses:
    204:
      description: Deleted
    400:
      description: Bad request
    401:
      description: Unauthorized

Вот компоненты:

GlobalOrderSetupInfo:
  description: 'Put Text Here'
  type: object
  properties:
    Id:
      type: integer
      nullable: true
    AvailableHolidayList:
      type: string
      nullable: true
    SelectedOrderHolidays:
      type: string
      nullable: true
    SelectedHolidays:
      type: string
      nullable: true
    OrderDays:
      type: string
      nullable: true
    NoOrderDays:
      type: string
      nullable: true
    AllSessionList:
      uniqueItems: false
      type: array
      items:
        $ref: '#/components/schemas/SessionInfoList'
    SessionIdString:
      type: string
      nullable: true

SessionInfoList:
  description: 'Put Text Here'
  type: object
  properties:
    Id:
      type: integer
      nullable: true
    SessionID:
      type: integer
      nullable: true
    Name:
      type: string
      nullable: true
    Type:
      type: string
    GroupName:
      type: string
    IsChecked:
      type: boolean
      default: false
    SetupID:
      type: string
      nullable: true

Я ожидаючтобы иметь возможность получить / удалить объект по идентификатору, но я возвращаю 404 ошибки

1 Ответ

0 голосов
/ 19 июня 2019

Есть несколько проблем с вашей спецификацией.

  1. Путь /api/globalorderdays/{Id} повторяется несколько раз.Это недопустимо.

    # Incorrect
    
    /api/globalorderdays/{Id}:
      get:
        ...
    
    /api/globalorderdays/{Id}:
      delete:
        ...
    

    Вместо этого укажите путь один раз и перечислите все его методы HTTP под ним, например:

    /api/globalorderdays/{Id}:
      get:
        ...
      delete:
        ...
    
  2. Примеры параметровотсутствует значение:

    schema:
      type: integer
      example:   # <-----
    

    Отсутствующее значение в YAML является эквивалентом null, но null не является допустимым примером для целочисленной схемы.Либо добавьте правильный пример целочисленного типа, например example: 1, либо удалите ключевое слово example из этих схем.

После устранения этих проблем будут работать макеты для GET и DELETE.должным образом.

...