我在Django中有一个使用REST框架提供API的网站。
有没有办法生成可用于与此API通信的API客户端,该API提供映射API内容的对象?
答案 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_name
为foo
而且您的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. *依赖。