Вопрос по python – Использование RESTful API с Django

11

Я создаю приложение Django, которое должно взаимодействовать со сторонним RESTful API, создавая различные GET, PUT и т. Д. Для этого ресурса. То, что я ищу, - это хороший способ представить этот API в Django.

Наиболее очевидным, но, возможно, менее изящным решением, по-видимому, является создание модели, в которой различные методы сопоставляются с запросами веб-сервиса. С другой стороны, кажется, что использование чего-то вроде пользовательского бэкэнда БД обеспечило бы большую гибкость и было бы лучше интегрировано в ORM Django.

Caveat: This is the first real project I've done with Django, so it's possible I'm missing something obvious here.

Ваш Ответ

2   ответа
1

используя встроенный urllib (немного неуклюжий, но функциональный), и оберните интерфейс в класс с методом для каждого удаленного вызова. Ваш класс может затем переводить и из нативных типов Python. Это то, что я все равно буду делать!

9

requests библиотека облегчает написание потребителя REST API. Существует также библиотека Python под названиемslumber, который построен на вершинеrequests, для явной цели использования API REST. Насколько хорошо это будет работать для вас, вероятно, зависит от того, насколько действительно RESTful API.

не блокирует ли это весь процесс?
Похоже, запросы теперь поддерживают проверку подлинности на основе сертификата? Параметр cert может быть парой String для файла сертификата клиента ssl (.pem) или парой Tuple (& # x2018; cert & # x2019 ;, & # x2018; ключ & # x2019;) - доступной по запросам и сеансам.
slumber очень легко, это не дает много для уровня абстракции. Но в некоторых случаях может быть достаточно.
Да, запросы не имеют встроенной поддержки неблокирующих операций ввода-вывода. Тем не менее, есть уровни совместимости дляgevent а такжеconcurrent.futures docs.python-requests.org/en/latest/user/advanced/…
Хм, похоже, запросы не поддерживают использование аутентификации на основе сертификата. Похоже, мне придется самому что-то написать, используя httplib. devights

Похожие вопросы