2009-05-03 21 views
7

Tôi hiện đang làm việc trên một ứng dụng hoạt động với Twitter, nhưng trong khi phát triển/thử nghiệm (đặc biệt là những phần không dựa nhiều vào dữ liệu Twitter thực), tôi muốn để tránh liên tục nhấn API hoặc xuất bản các mẩu tin rác.Phát triển/Thử nghiệm các ứng dụng Twitter mà không cần đập API

Có một chiến lược chung mà mọi người sử dụng để thực hiện dễ dàng trên API (lưu vào bộ nhớ cache sang một bên) không? Tôi đã nghĩ đến việc cuộn thư viện của riêng mình về cơ bản sẽ chặn các yêu cầu gửi đi và trả lời các câu trả lời giả, nhưng tôi muốn chắc chắn rằng tôi không thiếu bất kỳ điều gì rõ ràng trước tiên.

Trả lời

11

Tôi có thể bắt đầu bằng cách chế nhạo các phần cụ thể của API bạn cần cho ứng dụng của mình. Thực tế, điều này thực sự có thể buộc bạn phải thiết kế sạch hơn cho ứng dụng của bạn, bởi vì nó ít nhiều đòi hỏi bạn phải suy nghĩ về ứng dụng của mình về "cái gì" nó nên làm thay vì "làm thế nào" nó nên làm.

Ví dụ: nếu bạn đang sử dụng API tìm kiếm Twitter, ứng dụng của bạn rất có thể không quan tâm bạn có đang sử dụng tùy chọn định dạng JSON hoặc Atom hay không. Khả năng tìm kiếm Twitter bằng cách sử dụng một truy vấn đã cho và nhận được kết quả đại diện cho chức năng bạn muốn, vì vậy bạn nên giả lập API ở mức trừu tượng đó. Định dạng đầu ra chỉ là một chi tiết thực hiện.

Bằng cách mô phỏng API về chức năng thay vì về chi tiết triển khai cấp thấp, bạn có thể đảm bảo rằng ứng dụng thực hiện những gì bạn mong đợi, trước khi bạn thực sự kết nối với Twitter. Tại thời điểm đó, bạn đã xác minh rằng ứng dụng hoạt động như dự định, vì vậy điều duy nhất còn lại là viết mã để thực hiện các yêu cầu REST và phân tích các câu trả lời, điều này khá đơn giản, vì vậy có thể bạn sẽ không kết thúc nhấn Twitter với rất nhiều dữ liệu rác tại thời điểm đó.

2

Caching có lẽ là giải pháp tốt nhất. Bên cạnh đó, tôi tin rằng API được giới hạn trong 100 yêu cầu mỗi giờ. Vì vậy, có thể làm cho một chức năng mà giữ đếm mỗi yêu cầu và khi nó được gần 100, nó nói, OK, mỗi 10 yêu cầu API tôi sẽ kéo dữ liệu. Nó sẽ không được thiết lập cứng, có lẽ là một chức năng gradient mà curb off khi bạn đang gần đến giới hạn.

0

cache thứ trong một cơ sở dữ liệu .. Nếu bộ nhớ cache quá cũ thì hãy yêu cầu dữ liệu mới nhất qua API.

Cũng nghĩ về việc tài khoản ứng dụng của bạn được liệt kê trắng, nó sẽ cho phép bạn có giới hạn yêu cầu 20.000 api mỗi giờ so với measly 100 (được tạo cho người dùng không phải ứng dụng).

http://twitter.com/help/request_whitelisting

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