2014-12-10 13 views
7

Tôi yêu cách RAML có thể mất động tham khảo schemas khác nhau khi khai báo một resourceType như:động dân số ví dụ json theo RAML

resourceTypes: 
    - collection: 
     get: 
     responses: 
      200: 
      body: 
       application/json: 
       schema: <<schema>> 
     post: 
     body: 
      application/json: 
      schema: <<schema>>Create 
     responses: 
      200: 
      body: 
       application/json: 
       schema: <<schema>> 

Ở đây tôi có thể sử dụng điều này như

/users: 
    type: { collection: { schema: user } } 

và RAML sẽ cung cấp cho tôi user phản hồi lược đồ từ GET và POST và cũng sử dụng lược đồ userCreate để gửi yêu cầu POST. Mát mẻ! Bây giờ tôi có thể tái sử dụng định nghĩa bộ sưu tập của mình với hàng tấn các lược đồ khác nhau.

Nhưng bây giờ tôi muốn có ví dụ cho tất cả mọi thứ json quá, tôi đã hy vọng để sử dụng các <<schema>> var theo một cách khác để tận dụng "tái sử dụng mã". Tôi đã hy vọng có thể làm được

resourceTypes: 
    - collection: 
     get: 
     responses: 
      200: 
      body: 
       application/json: 
       schema: <<schema>> 
       example: examples/v1-<<schema>>.json 
     post: 
     body: 
      application/json: 
      schema: <<schema>>Create 
      example: examples/v1-<<schema>>-create.json 
     responses: 
      200: 
      body: 
       application/json: 
       schema: <<schema>> 
       example: examples/v1-<<schema>>.json 

nhưng tiếc là điều này không có tác dụng. Tôi nhận được một lỗi nói

error: File with path "/examples/v1-%3C%3Cschema%3E%3E.json" does not exist 

Vì vậy, bây giờ tôi đã phải dùng đến tay thêm này cho tất cả các bộ sưu tập của tôi và /users ví dụ trên đã trở thành

/users: 
    type: { collection: { schema: user } } 
    get: 
    responses: 
     200: 
     body: 
      application/json: 
      example: !include examples/v1-user.json 
    post: 
    body: 
     application/json: 
     example: !include examples/v1-user-create.json 
    responses: 
     200: 
     body: 
      application/json: 
      example: !include examples/v1-user.json 

Đối với tôi, đây là một LOT của overhead chỉ để thêm ví dụ. Đặc biệt là khi tôi muốn lặp lại mô hình trên nhiều tài nguyên.

Câu hỏi: Có cách nào để thực hiện việc này không?

Trả lời

2

Không, điều này không được phép trong RAML 0.8 theo thông số kỹ thuật. Nó có thể được cho phép trong các phiên bản tương lai.

0

Vì RAML chỉ là tiêu chuẩn, trước hết tôi sẽ hỏi: Ai/Điều gì sẽ ném lỗi đó? (Ý tôi là, bạn đang sử dụng công cụ nào?) Plus: Bạn có chắc chắn về ví dụ này không (ví dụ đầu tiên)? Nó không sử dụng, bao gồm, do đó, không nên có ý định để đạt được rằng tập tin không tồn tại (tôi giả định rằng bạn đang sử dụng! Bao gồm trong kịch bản ban đầu của bạn nhưng bỏ qua khi sao chép ở đây). Ngoài ra, và tôi biết bạn không yêu cầu điều này, nhưng chỉ trong trường hợp: - Bạn có thể vượt qua 2 tham số (như một giải pháp thay thế), một cho lược đồ và một cho ví dụ (nó vẫn còn trên đầu nhưng không phải là THAT hardcoded). - Bạn có biết về các thông số dành riêng không? Sử dụng + "singularize" hoặc "pluralize" tùy thuộc vào trường hợp, cũng có thể giúp bạn trong doanh nghiệp tái sử dụng của bạn;) Hãy xem http://raml.org/docs-200.html#parameters

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