2015-06-09 2 views
1

Я изучал спецификацию RAML, пытаясь найти, как представить параметр формы, который может содержать несколько значений (например, сказать «выборы: [выбор1, выбор2, выбор3]»). В спецификации есть атрибут «repeat», который должен позволить вам повторно использовать имя параметра в определении «post» (или любых других методах HTTP, которые принимают атрибуты запроса), но api-designer RAML (начиная с 06/08/2015) не распознает «повтор» и помещает его как ошибку. Кто-нибудь нашел способ обойти это?Параметр многозначной формы RAML

Пример

Ожидаемый ресурс

{choices : ["Choice 1 rocks", "Choice 2 rocks"]} 

Это не удается

post: 
    description: create a resource 
    body: 
     application/x-www-form-urlencoded: 
     formParameters: 
      choices: 
      displayName: Choice 1 
      description: first choice 
      type: string 
      required: true 
      repeat: true 
      example: Choice 1 rocks! 
      choices: 
      displayName: Choice 2 
      description: second choice 
      type: string 
      required: true 
      repeat: true 
      example: Choice 2 rocks! 

Это обходит проблему, если вы решили разделить параметры

{ 
    choice1 : "Choice 1 rocks!", 
    choice2 : "Choice 2 rocks!" 
} 


post: 
    description: create a resource 
    body: 
     application/x-www-form-urlencoded: 
     formParameters: 
      choice1: 
      displayName: Choice 1 
      description: first choice 
      type: string 
      required: true 
      example: Choice 1 rocks! 
      choice2: 
      displayName: Choice 2 
      description: second choice 
      type: string 
      required: true 
      example: Choice 2 rocks! 

ответ

0

В первая спецификация выше, не имеет смысла иметь choices дважды в разделе formParameters. Это тот же параметр: он должен быть указан только один раз, с repeat: true, чтобы отметить его как повторяющийся параметр.

0

Вы можете определить тип вашего выбора, как массив, добавив следующие,

Тип: String []

Это будет определять свой ресурс как массив String.

post: 
    description: create a resource 
    body: 
     application/x-www-form-urlencoded: 
     formParameters: 
      choice1: 
      displayName: Choice 1 
      description: first choice 
      type: string[] 
      required: true 
      example: Choice 1 rocks! 
      choice2: 
      displayName: Choice 2 
      description: second choice 
      type: string[] 
      required: true 
      example: Choice 2 rocks! 
Смежные вопросы