Overlay-Specification icon indicating copy to clipboard operation
Overlay-Specification copied to clipboard

How to append to a potentially non-existing array?

Open ralfhandl opened this issue 1 year ago • 0 comments

The Traits Example shows how to add query parameters for paging to an operation, which in this simple form would only work if the operation does not already have parameters.

How would this be extended to a less trivial case where operations may already have parameters?

openapi: 3.1.0
info:
  title: API with a paged collection
  version: 1.0.0
paths:
  /items:
    get:
      x-oai-traits: ['paged']
      responses:
        200:
          description: OK
  /items/{id}/subitems:
    get:
      x-oai-traits: ['paged']
      parameters:
        - name: id
          in: path
          required: true
      responses:
        200:
          description: OK

Would I have to specify an action for operation objects without parameters and actions for operation objects with parameters?

overlay: 1.0.0
info:
  title: Apply Traits
  version: 1.0.0
actions:
  - target: $.paths.*.get[[email protected] && [email protected]]
    update:
      parameters:
        - name: top
          in: query
          # ...
        - name: skip
          in: query
          # ...
  - target: $.paths.*.get[[email protected]].parameters
    update:
      name: top
      in: query
      # ...
  - target: $.paths.*.get[[email protected]].parameters
    update:
      name: skip
      in: query
      # ...

ralfhandl avatar Sep 25 '24 12:09 ralfhandl