2012-05-14 52 views
11

Tôi đang xây dựng một ứng dụng Django cần tương tác với RESTful API của bên thứ ba, tạo nhiều GET, PUT, v.v ... cho tài nguyên đó. Những gì tôi đang tìm kiếm là một cách tốt để đại diện cho API đó trong Django.Sử dụng API RESTful với Django

Giải pháp rõ ràng nhất, nhưng có lẽ ít thanh lịch hơn dường như đang tạo một mô hình có nhiều phương thức ánh xạ tới các truy vấn webservice. Mặt khác, có vẻ như sử dụng một cái gì đó giống như một phụ trợ DB tùy chỉnh sẽ cung cấp sự linh hoạt hơn và được tích hợp tốt hơn vào ORM của Django.

Lưu ý: Đây là dự án thực sự đầu tiên tôi đã thực hiện với Django, vì vậy có thể tôi thiếu một số thứ hiển nhiên ở đây.

Trả lời

9

Thư viện requests giúp bạn dễ dàng viết một người dùng REST API. Ngoài ra còn có một thư viện Python được gọi là slumber, được xây dựng trên đầu trang của requests, với mục đích rõ ràng là sử dụng các API REST. Làm thế nào tốt sẽ làm việc cho bạn có khả năng phụ thuộc vào cách RESTful API thực sự là.

+0

'slumber' là rất dễ dàng, nó không cung cấp nhiều cho lớp trừu tượng. Nhưng trong một số trường hợp có thể là đủ. – Tadeck

+0

Hmm, có vẻ như các yêu cầu không hỗ trợ sử dụng xác thực dựa trên chứng chỉ. Có vẻ như tôi sẽ phải viết một cái gì đó bản thân mình bằng cách sử dụng httplib. – devights

+0

Có vẻ như các yêu cầu hiện hỗ trợ xác thực dựa trên chứng chỉ? Tham số cert có thể là một đường dẫn String tới tệp ssl client cert (.pem), hoặc một cặp Tuple, (‘cert’, ‘key’) - có sẵn theo yêu cầu và các phiên. – Chris

1

Thực hiện cuộc gọi REST bằng cách sử dụng urllib tích hợp (hơi phức tạp nhưng chức năng) và đưa giao diện vào một lớp, với phương thức cho mỗi cuộc gọi từ xa. Lớp của bạn sau đó có thể dịch sang và từ các kiểu python gốc. Đó là những gì tôi sẽ làm anyway!

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