Có cách nào để xác định loại HashMap hoặc Generic Object trong phần mô hình không? Tôi có dịch vụ REST trả về sản phẩm và các sản phẩm đó có thể có các tùy chọn khác nhau. Thuộc tính tùy chọn về cơ bản là HashMap, trong đó id là tên tùy chọn và giá trị của nó là giá trị tùy chọn.Swagger HashMap loại thuộc tính
Trả lời
Có thể.
Trong OpenAPI (. Fka Swagger) 2.0 và 3.0, một hashmap luôn là một bản đồ <string, something>
:
- Mấu chốt luôn là một chuỗi và không cần phải được xác định.
- Loại giá trị là những gì bạn muốn và được xác định với
additionalProperties
.
Hãy nói rằng bạn muốn mô tả một hashmap <string, string>
như thế này:
{
"key1": "value1",
"key2": "value2"
}
Các tương ứng OpenAPI 2.0 định nghĩa sẽ là:
definitions:
StringStringMap:
type: object
additionalProperties:
type: string
Trong OpenAPI 3.0 định nghĩa sẽ là:
components:
schemas:
StringStringMap:
type: object
additionalProperties:
type: string
Một hashmap <string, object>
như thế này
{
"key1": {"someData": "data", "someOtherData": true},
"key2": {"someData": "data2", "someOtherData": false}
}
sẽ được xác định theo cách này trong OpenAPI 2.0:
definitions:
ComplexObject:
type: object
properties:
someData:
type: string
someOtherData:
type: boolean
StringObjectMap:
type: object
additionalProperties:
$ref: "#/definitions/ComplexObject"
và trong OpenAPI 3.0:
components:
schemas:
ComplexObject:
type: object
properties:
someData:
type: string
someOtherData:
type: boolean
StringObjectMap:
type: object
additionalProperties:
$ref: "#/definitions/ComplexObject"
Tôi vừa mới được bảo hiểm này trong chiều sâu trong part 4 of my OpenAPI (fka Swagger tutorial).
OpenAPI (fka. Swagger) specification explains briefly this too.
Điều này hữu ích và hoạt động nếu cấu trúc dữ liệu cho các giá trị là tất cả các loại ComplexObject. Tuy nhiên, tôi có một kịch bản mà cấu trúc của các giá trị khác nhau tùy thuộc vào mẫu của khóa. Trong JSON Schema, tôi có thể diễn tả điều này một cách dễ dàng bằng cách sử dụng patternProperties. Bất kỳ suy nghĩ về cách người ta có thể diễn tả điều này trong OAS/Swagger? –
Tôi đang sử dụng chữ thập phân 2.0. Tôi muốn nhận được
- 1. hạn chế loại thuộc tính của thuộc tính tùy chỉnh
- 2. AngularJS loại bỏ các thuộc tính
- 3. Thuộc tính Struts ActionForm nên loại nào?
- 4. Thuộc tính phân loại của Xml
- 5. Xstream: loại bỏ thuộc tính lớp
- 6. Thiết lập thuộc tính loại ẩn danh
- 7. Thuộc tính tùy chỉnh của loại mảng
- 8. lỗi: thuộc tính 'myBoolVariableName' có thuộc tính 'giữ lại' phải thuộc loại đối tượng
- 9. Java loại HashMap bởi giá trị
- 10. java.lang.IllegalStateException: Thuộc tính ngữ cảnh gốc không thuộc loại WebApplicationContext
- 11. HashMap với kiểm tra tính duy nhất
- 12. Thay đổi loại thuộc tính trong lớp thực hiện giao diện với thuộc tính loại đối tượng
- 13. Có cách nào để đặt thuộc tính vào thuộc tính loại ẩn danh không?
- 14. Python lỗi thuộc tính: loại đối tượng '_socketobject' không có thuộc tính 'GetHostByName'
- 15. Gán Hashmap thành Hashmap
- 16. HashMap trong vòng một HashMap
- 17. HashMap
- 18. Thêm thuộc tính vào loại ẩn danh sau khi tạo
- 19. Loại bỏ một thuộc tính kế thừa trong .net
- 20. Bất kỳ loại thuộc tính "Ẩn" nào trong System.ComponentModel.DataAnnotations?
- 21. loại đối tượng 'datetime.datetime' không có thuộc tính 'datetime'
- 22. loại thuộc tính hoặc lớp học sử dụng phản chiếu
- 23. JSF 2.0 loại bỏ các thuộc tính HTML5 cần thiết
- 24. Cách đọc thuộc tính của một loại ẩn danh?
- 25. Hỗ trợ cho Thuộc tính Loại trong g ++
- 26. Kiểm tra thuộc tính QuickCheck đối với nhiều loại?
- 27. Đặt loại thuộc tính cho điều khiển tùy chỉnh WPF?
- 28. Độ phân giải loại dựa trên thuộc tính trong JSON.NET
- 29. cách Generic phân loại mảng JSON bởi thuộc tính
- 30. javax.el.PropertyNotFoundException: Tên 'thuộc tính' không tìm thấy trên loại java.lang.String
Bạn đang sử dụng hương vị nào của Swagger? (jax-rs, play, etc) – Eyal
@Eyal: Chúng tôi đang sử dụng swagger-ui và có cùng một vấn đề. Bạn có giải pháp hay giải pháp khác không? –
@JanHartung Không, chúng tôi không có quá nhiều bản đồ trong api của chúng tôi ... bạn có thể muốn đăng ký [yêu cầu tính năng này trong hệ thống theo dõi vấn đề vênh vang.] (Https://github.com/wordnik/swagger- core/issues/244) – Eyal