Hi
I am new to Swagger, trying to model an existing XML based API with key value pairs as this one...
...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é