2015-07-13 2 views
6

Я создал API, который обеспечивает ресурс под названием «Эскиз» (/ эскизы)Как повторно использовать объекты в схеме API BluePrint?

{ 
    "name": "toto", 
    "uri": "http://xxx" 
} 

В другой стороны, у меня есть несколько ресурсов, которые включают в себя, что Thumbnail ресурс в них (как/статьях,/видео ...):

{ 
    "name": "playlist", 
    "thumbnail": 
    { 
     "name": "toto", 
     "uri": "http://xxx" 
    } 
} 

Когда я пишу схемы этих веб-сервисы в светокопии уценке, я хотел бы иметь возможность повторно использовать схему, которую я создал для схемы миниатюр для того, чтобы не повторять код в схемы. У меня есть черта функции Черты (https://github.com/apiaryio/api-blueprint/issues/47), но я не знаю, соответствует ли она моим потребностям, и если она работает с aglio и dredd.

Знаете ли вы, что лучше всего делать в моем случае?

ответ

8

Вы можете использовать MSON в разделе Attributes интерфейса API для определения объектов многократного использования.

Некоторые примеры приведены в here, here и here.

+1

Обратите внимание, что для их рендеринга в Aglio в настоящее время требуется использовать бета-версию, которая может быть установлена ​​через 'npm install -g aglio @ beta'. Скоро он будет выпущен как версия 2.0. – Daniel

+1

И поддерживается в 'dredd' –

+0

Hum, но могу ли я использовать эти атрибуты в схеме моего WS? Мне нравится, когда Дредд проводит тест на схеме. –

0

Итак, я обновил свой дредд и испытал MSON. Это классно и эффективно. У меня просто проблема с этим мдом:

# Data Structures 

## Video (object) 
Definition of a video 
+ id: 11111 (number) - The unique key 
+ description: "my video" (string) - Free text of video 
+ truc: "ffff" (string) 

# Group VideosTest 

## Videos List [/videos] 
List of videos 

### List of videos [GET] 

+ Response 200 (application/json) 

    + Attributes (array[Video]) 

Испытанием оленьей кожи потерпеть неудачу, но я не атрибуты «Трюк» в моей реальной API и у меня есть URL атрибута. Поэтому я ожидал, что тест потерпит неудачу. Я ошибаюсь ?

+0

Можете ли вы вставить то, что ожидает ваш настоящий API? –

+0

'[{" id ":" 1 "," description ":" desc "," url ":" http: // xxx "}, {" id ":" 2 "," description ":" desc2 "," «url»: «http: // xxx»}} ' –

+0

К сожалению, MSON не поддерживает больше, чем один элемент в массиве. :( –

0

я дать и пример:

Мой мкр:

# Data Structures 

## Video (object) 
Definition of a video 
    + id: 11111 (number, required) - The unique key 
    + description: "my video" (string, required) - Free text of video 
    + truc: "ffff" (string, required) 

## A video [/videos/{id}] 
See a video 

+ Parameters 

    + id (required, string, `a-la-decouverte-des-metiers-projection-du-film`) ... L'id ou le slug de la video 

### Select a video [GET] 

+ Response 200 (application/json) 

    + Attributes (Video) 

И мой API:

{ 
"id": "1111", 
"description": "description of the video", 
"uri": "http://" 
} 

Тест ОК, но я хочу ошибку, Дредд !!!

Смежные вопросы