问题 使用Django使用RESTful API


我正在构建一个需要与第三方RESTful API交互的Django应用程序,为该资源创建各种GET,PUT等。我正在寻找的是在Django中表示该API的好方法。

最明显但也许不太优雅的解决方案似乎是创建一个模型,该模型具有映射到Web服务查询的各种方法。另一方面,似乎使用类似自定义数据库后端的东西可以提供更大的灵活性,并更好地集成到Django的ORM中。

警告:这是我用Django做的第一个真正的项目,所以我可能会遗漏一些明显的东西。


3993
2018-05-14 20:24


起源



答案:


requests library使编写REST API使用者变得容易。还有一个名为的Python库 slumber,建立在...之上 requests,用于明确消费REST API的目的。对你有用的程度可能取决于API究竟是如何实现的。


9
2018-05-14 20:54



slumber 非常简单,它对抽象层没有多大帮助。但在某些情况下可能就足够了。 - Tadeck
嗯,看起来请求不支持使用基于证书的身份验证。好像我将不得不使用httplib自己写一些东西。 - devights
看起来请求现在支持基于证书的身份验证参数cert可以是ssl客户端证书文件(.pem)的字符串路径,也可以是请求和会话中可用的元组,('cert','key')对。 - Chris
这不会阻止整个过程吗? - bryanph
是请求没有内置支持非阻塞IO。但是,有兼容层 gevent 和 concurrent.futures  docs.python-requests.org/en/latest/user/advanced/... - Mark Lavin


答案:


requests library使编写REST API使用者变得容易。还有一个名为的Python库 slumber,建立在...之上 requests,用于明确消费REST API的目的。对你有用的程度可能取决于API究竟是如何实现的。


9
2018-05-14 20:54



slumber 非常简单,它对抽象层没有多大帮助。但在某些情况下可能就足够了。 - Tadeck
嗯,看起来请求不支持使用基于证书的身份验证。好像我将不得不使用httplib自己写一些东西。 - devights
看起来请求现在支持基于证书的身份验证参数cert可以是ssl客户端证书文件(.pem)的字符串路径,也可以是请求和会话中可用的元组,('cert','key')对。 - Chris
这不会阻止整个过程吗? - bryanph
是请求没有内置支持非阻塞IO。但是,有兼容层 gevent 和 concurrent.futures  docs.python-requests.org/en/latest/user/advanced/... - Mark Lavin


使用内置urllib进行REST调用(有点笨重但功能正常)并将接口封装到一个类中,并为每个远程调用提供一种方法。然后,您的类可以转换为本机python类型。无论如何,这就是我要做的!


1
2018-05-14 21:17