Trong thư mục hỗ trợ dưa chuột của tôi, tôi đã điều sau đây trong vcr.rb:của Ruby VCR đá quý vẫn tiếp tục ghi nhận các yêu cầu tương tự
require 'vcr'
VCR.configure do |c|
c.cassette_library_dir = 'fixtures/vcr_cassettes'
c.hook_into :webmock
c.ignore_localhost = true
c.default_cassette_options = { record: :new_episodes }
end
tôi mã hóa địa lý tên thành phố mà làm cho các cuộc gọi đến các API của Google Maps. Tôi đang cố gắng để ghi lại và còn sơ khai những yêu cầu này, nhưng nó vẫn không ngừng ghi lại những yêu cầu tương tự cho file yml cùng:
- request:
method: get
uri: http://maps.googleapis.com/maps/api/geocode/json?address=Miami,%20FL&language=en&sensor=false
body:
encoding: US-ASCII
string: ''
headers:
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
- ! '*/*'
User-Agent:
- Ruby
# response...
- request:
method: get
uri: http://maps.googleapis.com/maps/api/geocode/json?address=Miami,%20FL&language=en&sensor=false
body:
encoding: US-ASCII
string: ''
headers:
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
- ! '*/*'
User-Agent:
- Ruby
Đó là cùng một URL và rất tương tự yêu cầu, không nên VCR còn sơ khai theo yêu cầu? Làm thế nào tôi có thể ngăn chặn các thông số kỹ thuật của tôi không truy cập API mỗi khi tôi cố gắng tìm kiếm cùng một thành phố?
@Erik J - Nếu có * bất kỳ ai * bạn nên nghe về [VCR] (https://github.com/myronmarston/vcr/) đó là một người được gọi là Myron;) – Gareth
Cảm ơn, Myron, tôi hy vọng bạn sẽ trải qua ;) Tôi chỉ nhận ra rằng các tiêu đề phản hồi của tôi bao gồm 'Hết hạn: - Thứ Sáu, ngày 13 tháng 7 năm 2012 18:31:50 GMT', sau 24 giờ kể từ ngày yêu cầu. VCR có nhận thấy điều này và thử thực hiện lại yêu cầu không? Nếu vậy, có cách nào để vô hiệu hóa điều đó không? –
Không, VCR không sử dụng điều này cả. Có tùy chọn [re_record_interval] (https://www.relishapp.com/myronmarston/vcr/v/2-2-3/docs/cassettes/automatic-re-recording) nhưng không xem xét bất kỳ tiêu đề nào (nó chỉ sử dụng khoảng thời gian đã định cấu hình) và nó sẽ không tạo ra các tương tác trùng lặp mà bạn nhìn thấy; nó sẽ thay thế tương tác HTTP cũ thay vì chỉ thêm một cái mới. –