@Fly3110
web developer

Как в RAML описать объект с неизвестными полями?

Всем привет.

Пишу документацию api на raml, есть объект следующего типа:

{id: 1, name: 'Example', additional: {some_key: some_value, one_more_key: one_more_value}}

понятно, что у id тип integer, у name - string, а как описать поле additional? Вроде и объект, но у объектов надо прописывать поля. А тут поля могут быть абсолютно любые. Единственное ограничение, что значения - строки.
То есть это такой "простой" объект. В значениях не может быть ни массивов ни других объектов.
  • Вопрос задан
  • 185 просмотров
Решения вопроса 1
https://github.com/raml-org/raml-spec/blob/raml-10...

Map Types
Maps (aka Dictionaries) can be declared by creating an object type and declaring a special property called "[]":
#%RAML 1.0
title: My API With Types
types:
  MapOfNumbers:
    type: object
    properties:
      []:
        type: number


В вашем случае думаю будет достаточно заменить type: number на type: string. Посмотрите еще additionalProperties, из той же оперы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
#%RAML 1.0
title: Example API
version: v1

types: 
  Dictonary_1:
    type: array
    items: string
      
  Dictonary_item:
    type: object
    properties: 
      name:
        type: string
      value:
        type: string
        
  Dictonary_2:
    type: array
    items: Dictonary_item

/Dictonary_1:
  post:
    body: 
      application/json:
        type: Dictonary_1
        example: |
          [
            "item1",
            "item2",
            "item3"
          ]
          
/Dictonary_2:
  post:
    body: 
      application/json:  
        type: Dictonary_2
        example: |
          [
            {
              "name": "name1",
              "value": "item1"
            },
            {
              "name": "name2",
              "value": "item2"
            }
          ]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы