从Django REST框架API生成API客户端

时间:2016-08-03 12:03:45

标签: django rest orm django-rest-framework

我在Django中有一个使用REST框架提供API的网站。

有没有办法生成可用于与此API通信的API客户端,该API提供映射API内容的对象?

1 个答案:

答案 0 :(得分:1)

如果您正在谈论javascript客户端API,我有一个django管理任务,我用它从我的DRF API生成一个javascript库 使用AngularJS 1. *。我仍在使用DRF 2.4,以便轻松嵌套对象写入,以及Django 1.7。 "Equivalent to x1 + x2 in terms of array broadcasting."

取出该文件,将其粘贴在<app>/management/commands/中并将其称为:

python manage.py rest_framework_2_js rest_api.gen.js [base_factory_name] [server_base_url]

如果您的base_factory_namefoo而且您的server_base_url/Bar/上有一个名为Bar的API对象,则可以使用它:

foo.Bar.get(42)
  .then(function(bar_inst) { 
     console.log(bar_inst);
     bar_inst.baz = 77;
     bar_inst.save()
       .then(function() {
         console.log('bar_inst has been saved');
       });
  })

foo.BarList.get('filter_a=5&field_filter_b=abc,d')
  .then(function(data) {
    console.log(data.results);
  })

data.result中的每个实例都是foo.Bar个实例。

您可以在发送到服务器之前以及使用foo.Bar.pre_save(function (inst) {/*callback mutator*/})foo.Bar.post_restore( function(inst) { /*callback mutator*/})从服务器检索后添加回调。

无论如何,这个管理任务没有产品化,它只有一个用户 - 我,但我已经使用它2年了,它对我很有用:-)我们可以努力让它在您的配置中工作如果你喜欢。当然,最大的警告是AngularJS 1. *依赖。