Example 5 - Simple $xref example with filtering

This example shows how enabling the filtering configuration option causes maven to substitute properties into the generated YAML file

(This example is identical to Example 1 but has an additional '${pom.version}' value in the info block.

For filtering to be enabled, include

  <filtering>true</filtering>

in the configuration block of the plugin.

Input

input.yaml

info:
  # the API version in the generated swagger spec will match 
  # the version number in your pom.xml file 
  version: "${pom.version}"
  title: Thing API

paths:
  /thing:
    get:
      $xref: 'paths.yaml#/paths/#/thing#/get'    

    post:
      $xref: 'paths-v2.yaml#/paths/#/thing#/post'

paths.yaml

paths:
  /thing:
    get:
      operationId: getThings
      description: get all the things
      parameters:
      responses:
        200:
        schema:
          type: object
          title: getThingsOKResponse
          properties:
            status:
              description: OK
              type: string
            thing:
              type: array
              items:
                $ref: 'objects.yaml#/definitions/ThingObject'

paths-v2.yaml

paths:
  /thing:
    post:
      operationId: addThing
      description: |
        Adds a new `Thing`.
        * Things must be uniquely identifiable by `name`.
        * The `id` of the thing must be empty; the newly created `id` will be returned in the response object.
      parameters:
        thing:
          $ref: 'objects.yaml#/definitions/ThingObject'
      responses:
        200:
        schema:
          type: object
          title: getThingsOKResponse
          properties:
            status:
              description: OK
              type: string
            thing:
              type: array
              items:
                $ref: 'objects.yaml#/definitions/ThingObject'

Output

---
info:
  version: "1.0.0-SNAPSHOT"
  title: Thing API

paths:
  /thing:
    post:
      operationId: addThing
      description: |
        Adds a new `Thing`.
        * Things must be uniquely identifiable by `name`.
        * The `id` of the thing must be empty; the newly created `id` will be returned in the response object.
      responses:
        200: null
        schema:
          type: object
          title: getThingsOKResponse
          properties:
            thing:
              type: array
              items:
                $ref: objects.yaml#/definitions/ThingObject
            status:
              type: string
              description: OK
      parameters:
        thing:
          $ref: objects.yaml#/definitions/ThingObject
    get:
      operationId: getThings
      description: get all the things
      responses:
        200: null
        schema:
          type: object
          title: getThingsOKResponse
          properties:
            thing:
              type: array
              items:
                $ref: objects.yaml#/definitions/ThingObject
            status:
              type: string
              description: OK
      parameters: null

Back to top

Reflow Maven skin by Andrius Velykis.