2014-09-11 16 views
5

Tôi hiện đã triển khai Swagger và tôi nhận thấy rằng url cơ sở cho tài nguyên được mã hóa cứng trong tệp tài nguyên JSON, lý tưởng là tôi muốn cung cấp cho người dùng khả năng thay đổi url cơ sở cho các verbage json khác nhau. Vì vậy, ví dụ, cung cấp cho họ khả năng gửi một nhận từ một môi trường và đặt từ một trang khác trên cùng một trang vì tôi đang làm việc với nhiều môi trường và nếu không họ sẽ phải thay đổi JSON trong mỗi tài nguyên của họ thời gian họ muốn sử dụng một môi trường mới. Có ai biết nếu điều này là có thể?URL cơ sở có thay đổi trong Swagger không?

Trả lời

3

này là có thể, và tôi thực hiện điều này theo cách sau:

Trong swaggerui, tôi lập trình tuyên bố url của tôi bằng cách lấy url qua javascript:

// Get the url: 
    theUrl = window.location.protocol+"//" + window.location.host+"/docs"; 

    window.swaggerUi = new SwaggerUi({ 
    url: theUrl,..other parameters...}) 

Trong file json của tôi, nơi tôi tuyên bố một tài nguyên, tôi chỉ tuyên bố basepath của tôi là "/" như được hiển thị bên dưới:

{ 
    "apiVersion": "1.0.0", 
    "swaggerVersion": "1.2", 
    "basePath": "/", 
    "resourcePath": "/api/myapi"....... 

Hy vọng điều đó sẽ hữu ích!

1

Để thay đổi động tên máy (và ghi đè giá trị từ tệp JSON) của máy chủ mục tiêu (nơi yêu cầu REST được gửi):

$.each(window.swaggerUi.api.apis, function(key, val) { 
    window.swaggerUi.api.apis[key].basePath = "http://target:port"; 
}); 
+0

Khi/nơi được mã này phải chạy? –

+0

Đó là mã javascript để thực thi trong trang Swagger để thay đổi tất cả các đường cơ sở –

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