2015-07-13 19 views
6

Tôi đã tạo ra một API mà cung cấp một nguồn tài nguyên có tên là "Thumbnail" (/ thumbnails)Làm cách nào để sử dụng lại các đối tượng trong lược đồ API BluePrint?

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

Mặt khác tôi có nhiều nguồn tài nguyên bao gồm tài nguyên mà Thumbnail trong họ (như/bài viết,/video ...):

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

Khi tôi viết các lược đồ của những webservices trong markdown Blueprint, tôi muốn để có thể tái sử dụng các sơ đồ mà tôi đã tạo ra cho các schema Thumbnail để không lặp lại mã kiểm tra vào lược đồ. Tôi yêu thích tính năng Trait (https://github.com/apiaryio/api-blueprint/issues/47) nhưng tôi không biết liệu nó có phù hợp với nhu cầu của tôi hay không và nếu nó hoạt động với aglio và dredd.

Bạn có biết điều tốt nhất cần làm trong trường hợp của tôi không?

Trả lời

8

Bạn có thể sử dụng MSON trong phần Attributes của Kế hoạch chi tiết API để xác định các đối tượng có thể tái sử dụng.

Bạn có thể xem một số ví dụ trong here, herehere.

+1

Lưu ý rằng việc nhận các ảnh này để hiển thị trong Aglio hiện yêu cầu bạn sử dụng bản phát hành beta, có thể được cài đặt qua 'npm install -g aglio @ beta'. Chẳng bao lâu nó sẽ được phát hành dưới dạng phiên bản 2.0. – Daniel

+1

Và nó được hỗ trợ trong 'dredd' –

+0

Hum, nhưng tôi có thể sử dụng các thuộc tính này trong lược đồ WS của tôi không? Tôi thích khi Dredd thực hiện kiểm tra trên lược đồ. –

0

Vì vậy, tôi đã cập nhật MSON của mình và đã được kiểm tra. Nó có vẻ mát mẻ và hiệu quả. Tôi chỉ gặp vấn đề với md này:

# 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]) 

Kiểm tra không thành công, nhưng tôi chưa gán thuộc tính "truc" trong API thực và tôi có URL thuộc tính. Vì vậy, tôi mong đợi thử nghiệm thất bại. Liệu tôi có sai ?

+0

Bạn có thể dán những gì API thực của bạn đang mong đợi không? –

+0

'[{" id ":" 1 "," mô tả ":" desc "," url ":" http: // xxx "}, {" id ":" 2 "," description ":" desc2 ", "url": "http: // xxx"}} ' –

+0

Thật không may, MSON không hỗ trợ nhiều hơn một phần tử trong mảng. :( –

0

tôi cung cấp cho u ví dụ:

md của tôi:

# 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) 

Và API của tôi:

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

thử nghiệm là OK, nhưng tôi muốn một lỗi bằng cách Dredd !!!

Các vấn đề liên quan