sách gpt4 ăn đã đi

解决Swagger2返回map复杂结构不能解析的问题

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 30 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này giải quyết vấn đề không thể phân tích cú pháp cấu trúc phức tạp của bản đồ được Swagger2 trả về. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Hôm nay, khi một đồng nghiệp đang phát triển bằng swagger2, một phương thức đã trả về Map> và đã xảy ra lỗi không thể phân tích cú pháp.

Phiên bản vênh vang được Pom.xml giới thiệu như sau:

  1. io.swagger
  2. chú thích swagger
  3. 1.5.20
  4. io.springfox
  5. springfox-swagger2
  6. 2.6.1
  7.  
  8. io.springfox
  9. springfox-swagger-giao diện người dùng
  10. 2.6.1

Nguyên nhân cụ thể:

Điều này là do cấu trúc phức tạp của bản đồ không được swaggerconfig thêm theo mặc định và cần được thêm thủ công.

bước chân:

1. Tìm lớp swaggerconfig và thêm một số mapRules trong phương thức Docket.

2. Thiết kế quy tắc ở đây linh hoạt hơn. Tôi sẽ thêm nó theo định dạng của tiêu đề. Model.class là một lớp doanh nghiệp tùy chỉnh. Chỉ cần thay thế nó bằng lớp của riêng bạn.

  1. hồ sơ.loại quy tắc thay thế(Loại quy tắc thay thế.newMapRule(Sợi dây.lớp học, Danh sách.lớp học));
  2. hồ sơ.loại quy tắc thay thế(Loại quy tắc thay thế.newMapRule(Danh sách.lớp học, Người mẫu.lớp học));

Mã cụ thể như sau:

  1. @Cấu hình
  2. @EnableSwagger2
  3. công cộng lớp học Cấu hình Swagger {
  4. @Đậu
  5. công cộng Hồ sơ tạoRestApi() {
  6. Hồ sơ hồ sơ = mới Hồ sơ(Loại tài liệu.VẺ ĐẸP_2)
  7. .apiThông tin(apiThông tin())
  8. .lựa chọn()
  9. .API(RequestHandlerSelectors.với MethodAnnotation(Hoạt động API.lớp học))
  10. .đường dẫn(Bộ chọn đường dẫn.bất kì())
  11. .xây dựng();
  12.  
  13. hồ sơ.loại quy tắc thay thế(Loại quy tắc thay thế.newMapRule(Sợi dây.lớp học, Danh sách.lớp học));
  14. hồ sơ.loại quy tắc thay thế(Loại quy tắc thay thế.newMapRule(Danh sách.lớp học, Người mẫu.lớp học));
  15. trở lại hồ sơ;
  16. }
  17. }

Những cạm bẫy gặp phải khi sử dụng Swagger

1. Yêu cầu không giới hạn

Nếu có lỗi trong yêu cầu trang vênh vang, vênh vang sẽ cố gắng truy cập vô thời hạn. Khi dự án được khởi động lại sau đó, lớp điều khiển sẽ làm mới vô tận nội dung của nhật ký.

Dễ dàng xử lý cục bộ. Nếu dự án được triển khai trên máy chủ, vài gigabyte tệp nhật ký có thể được tạo trong mười phút.

Giải pháp: Cách đơn giản nhất - đóng trình duyệt yêu cầu lỗi.

2. Vấn đề trùng tên

@Api (vấn đề cùng tên) Vì vênh vang sẽ tìm kiếm các đối tượng dựa trên tên của thẻ nên khi có các đối tượng có cùng tên, sẽ có vấn đề với tài liệu vênh vang.

Nếu có một yêu cầu trong một API không thuộc về API đó thì đây là sự cố có cùng tên API. Chỉ cần tìm tên API giống nhau và thay thế nó.

3. Vấn đề với chú thích “/” trên lớp

@ApiModel(không thể sử dụng "/").

解决Swagger2返回map复杂结构不能解析的问题

Lỗi Ẩn lỗi Resolver tại paths./v1-0/Configuration/add.post.parameters.1.schema.properties.listHotCarBrandIVO.items.$ref Không thể giải quyết tham chiếu vì: Không thể giải quyết con trỏ: /definitions/热门车/品牌/的IVO không tồn tại trong tài liệu 。

4. Sử dụng bản đồ làm kiểu trả về để báo lỗi.

Lỗi Ẩn lỗi Resolver tại definitions.Map«string,List«卖车车辆信息OVO»».additionalProperties.$ref Không thể giải quyết tham chiếu vì: Không thể giải quyết con trỏ: /definitions/List không tồn tại trong tài liệu 。

Hai giải pháp: Nâng cấp số phiên bản vênh vang Đây là khi tôi sử dụng 2.8.0 để báo lỗi. Có một câu nói trên Internet rằng việc nâng cấp phiên bản có thể giải quyết được vấn đề, nhưng tôi đã không thử cách này.

  1. io.springfox
  2. springfox-swagger2
  3. 2.8.0

Giải pháp của tôi là xác định bản đồ trong đối tượng, lập trình hướng đối tượng và khi tài liệu được tạo ra, các bình luận sẽ được hiển thị.

解决Swagger2返回map复杂结构不能解析的问题

5. Có vấn đề với phiên bản vênh vang. Phiên bản trước 2.8 được viết như path/{id} +@pathVarisble.

Trước 2.8, loại được đưa ra bởi vênh vang thực sự là nội dung. Thật kỳ lạ khi nó cần được chuyển ở định dạng json.

Sau khi phiên bản được cập nhật lên 2.8, tham số bị ràng buộc sau đường dẫn là loại được cung cấp bởi vênh vang và thực tế có thể là tham số.

Có những lợi ích cho một phiên bản cập nhật đúng cách.

  1. io.springfox
  2. springfox-swagger2
  3. 2.8.0
  4. io.springfox
  5. springfox-swagger-giao diện người dùng
  6. 2.8.0

6. Một lỗi chưa bao giờ được sao chép

Không thực hiện được 'fetch' trên 'Window': Không phân tích được URL từ http://localhost/8765undefindKhông phân tích được URL từ http://localhost/8765undefind 。

Tôi đã khởi động lại dự án vênh vang và vấn đề vẫn chưa được tái hiện.

Sau đó, tôi đã sửa đổi nhận xét api trên phương pháp của bạn và khởi động lại nó. Điều quan trọng là không có lời nhắc nào, điều này rất khó hiểu. Nếu có ai tìm ra cách tái tạo vấn đề này, hãy cho tôi biết. .

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们.

Link gốc: https://blog.csdn.net/washingtin/article/details/102681667.

Cuối cùng, bài viết này về việc giải quyết vấn đề không thể phân tích cú pháp cấu trúc phức tạp của bản đồ do Swagger2 trả về ở đây. Nếu bạn muốn biết thêm về cách giải quyết vấn đề không thể phân tích cú pháp cấu trúc phức tạp của bản đồ do Swagger2 trả về, vui lòng tìm kiếm. cho các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

30 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress