Issues with modelling duplicated XML parameters..

33 views
Skip to first unread message

rene....@gmail.com

unread,
Sep 5, 2016, 10:42:30 AM9/5/16
to Swagger
Hi

I am new to Swagger, trying to model an existing XML based API with key value pairs as this one...

<attributeList>

    <attribute>

        <key>customerType</key>

        <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">type1</value>

    </attribute>

    <attribute>

        <key>customerId</key>

        <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">1234</value>

    </attribute>

<attributeList>



...in Swagger like this...
swagger: '2.0'
info:
  title: Case Mgmt APIs
  description: <removed>
host: <removed>
schemes:
  - http
basePath: /
securityDefinitions:
  basicAuth:
    type: basic
    description: HTTP Basic Authentication. Works over `HTTP` and `HTTPS`
paths:
  /crmCase:
    post:
      summary: Create a new case
      description: Create a new case
      operationId: createCase
      consumes: 
        - application/xml
      produces:
        - application/xml
      security:
        - basicAuth: []
      parameters:
        - name: request_body
          in: body
          required: true
          schema:
            $ref: "#/definitions/crmCase"
      tags:
        - crmCase
      responses:
        200:
          <removed>
        403:
          <removed>
definitions:
  customerType:
    type: object
    required:
      - key
      - value
    properties:
      key:
        type: string
        default: customerType
        enum: 
          - customerType
      value:
        type: string
        enum:
          - type1
          - type2
        xml:
          prefix: xsi
    xml:
      name: attribute
  customerId:
    type: object
    required:
      - key
      - value
    properties:
      key:
        type: string
        default: customerId
        enum: 
          - customerId
      value:
        type: string
        pattern: '^[1][0-9]{3}$'
        xml:
          prefix: xsi
    xml:
      name: attribute
  crmCase:
    type: object
    properties:
      attributeList:
        description: Customer deployment specific list of parameters
        type: array
        items:
          type: object
          properties:
            customerType:
              $ref: '#/definitions/customerType'
            customerId:
              $ref: '#/definitions/customerId'
          required:
            - customerType
        xml:
          name: attribute



... but no luck. Having searched on this subject a lot, I still have two issues:

I1) name: attribute is not taken/displayed in editor.swagger.io. Any idea why and whether this approach is correct for having multiple times the same attribute?

I2) key and value on customerId is considered mandatory by editor.swagger.io, although the customerId as such is supposed to be optional in this sample. Maybe I am dayblind... but I struggle to identify what I am doing wrongly. Whenever optional customer is added, key and value are mandatory. 


Many thanks for your help
René


Ron Ratovsky

unread,
Sep 20, 2016, 7:27:53 PM9/20/16
to swagger-sw...@googlegroups.com

Hi Rene,

 

Swagger-editor has a few glitches when it comes to displaying xml-related metadata.

Try loading your spec in swagger-ui and see if it displays as expected.

--
You received this message because you are subscribed to the Google Groups "Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggers...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages