2016-07-01 15 views
5

Tôi đã dành một loạt thời gian cố gắng tìm một giải pháp để tạo tài liệu vênh vang trong Node.JS. Thư viện chính là swagger-node, trong đó bạn tạo một tệp swam yaml và sau đó thêm các bộ điều khiển của bạn vào nó. Nó tự động cung cấp các tài liệu ui vênh trong ứng dụng của bạn và xác thực theo yêu cầu & phản hồi các mô hình bạn chỉ định trong yaml của mình.các trường có thể vô hiệu trong vung trên node.js

Đây là gọn gàng, tuy nhiên tôi có một yêu cầu mà một số lĩnh vực Tôi muốn một cách rõ ràng có thể trả lại hoặc chấp nhận null như một giá trị, ví dụ:

{ 
    id: 123, 
    description: "string", 
    date_sent: null 
} 

Tôi không muốn xóa date_sent , tôi muốn nói rõ nó là null.

Thông số dao động không hỗ trợ anyOf là cách giản đồ JSON thực hiện điều này như tôi tin.

Tôi tự hỏi liệu có cách giải quyết khác không? Có lẽ một số thư viện có sẵn cho nút có một lá cờ cụ thể của nhà cung cấp x-nullable mà bạn có thể thêm hoặc một số cách để chỉ định rằng các trường không bắt buộc của tôi tất cả đều có thể vô hiệu.

Tôi sẽ phải tự mình viết một cái gì đó để lấy tập tin vênh và sau đó sửa đổi nó trước khi trình kiểm tra hợp lệ chạy, hoặc có một số cách giải quyết mà ai đó có thể đề xuất không?

Trả lời

6

SwaggerUI không hỗ trợ các loại không có giá trị (vui lòng xem here). Nhưng tôi đã sử dụng các thuộc tính không thể sử dụng như:

type: ['string','null'] 

Sau khi thuộc tính này biến mất khỏi giao diện người dùng, nhưng xác thực vẫn hoạt động.

+2

aha! Tôi đã thử điều này, nhưng trong yaml tôi đã làm 'string' và' null' nhưng bạn phải có dấu ngoặc kép xung quanh ''null'' để nó hoạt động. Cảm ơn! Ngoài ra, nếu bạn thêm 'mặc định' thì nó sẽ hiển thị lại trong các giá trị mẫu, tôi đoán nó không biết cái nào để sử dụng làm ví dụ – RodH257

+0

Wow! Cám ơn rất nhiều! Tôi không nghĩ về giá trị mặc định. Tôi sẽ thử nó cho dự án của tôi – Sergiy

+2

Đó không phải là một định nghĩa kiểu Swagger hợp lệ, nhân tiện. – Ron

4

nullable trường được hỗ trợ trong OpenAPI (fka Swagger) Đặc điểm kỹ thuật v3.0.0, nhưng không phải trong v2.0. Các loại dễ vỡ được định nghĩa như sau:

# Can be string or null 
type: string 
nullable: true 
0

Thay vì thêm thuộc tính loại rỗng, bạn có thể sử dụng thuộc tính mặc định để thay thế.

Swagger.json định nghĩa tài sản Ví dụ:

"due_date": { 
    "type": "string", 
    "description": "Due date", 
    "default": "null" 
}, 

Đó là một định nghĩa kiểu Swagger hợp lệ, và vẫn xuất hiện như mong đợi trong Swagger UI.

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