这是一个非常笼统和公开的问题。因此,昨天我们决定,我们想要创建一个基于我们的网站,目前正在与Django构建的iOS应用。现在,Django和RoR一样,应该对UI是透明的;它不应该关心用户正在使用什么UI。(适当的MVC)
例如,如果我查看我们的一些代码,下面是如何将设备添加到我们的系统中:
@login_required
def add(request):
r_user = request.user.userprofile
form = EquipmentFormAdd(request.POST or None, c_id=r_user.company_id, error_class=DivErrorList)
if form.is_valid():
equipment = form.save(commit=False)
equipment.company_id = r_user.company_id
equipment.added_by_id = request.user.id
default_file_path = EquipmentPicture.get_default_file_path()
url_bucket = r_user.company.s3_bucket.name + default_file_path
cell = form.cleaned_data['cell']
equipment.cell_order = cell.equipment_set.count() + 1
equipment_picture = EquipmentPicture.objects.create(
file=EquipmentPicture.get_default_file_path(),
slug=EquipmentPicture.get_default_slug(),
bucket_name=r_user.company.s3_bucket.name,
bucket=r_user.company.s3_bucket, added_by=request.user,
company=r_user.company, url_with_bucket=url_bucket)
equipment.picture = equipment_picture
equipment.save()
return redirect('equipment_index')
return render(request, 'equipment/add.html', {'equipment_form': form, 'company_id': r_user.company_id})
如果我看一下这个,我会发现我们正在直接呈现一个模板并传递数据。这在iOS中是行不通的。
很少有问题:
我有点困惑..。很抱歉有这么长的问题,再次感谢!
发布于 2012-10-20 19:00:55
REST与GET和POST没有什么不同。它只是将它们用于数据而不是表示。您可以输出JSON或XML,而不是标记代码。然后API使用者为数据构建所需的用户界面。
REST的真正目的是从HTTP已经提供的所有工具中获利,而不是发明另一层封装(比如SOAP)。
例如,要指示某些操作的结果(成功与否),请使用状态代码。要表示要执行的动作,通常使用动词(get、post、put、delete、head、options)。其他请求或响应元数据将进入适当的http标头。
这样,数据就更简单了,缓存更容易了,集成就像饼一样容易了。
此外,有了一个好的REST,您甚至可以构建一个网站,它使用一些JavaScript框架(例如backbonejs)从API中消耗的数据构建UI。
更新
因此,考虑到Django中REST的当前状态,并具有一些生产和使用API的经验,我建议您构建以下两种方法:
在任何情况下,RESTful API都将帮助您获得应用程序的数据结构。
https://stackoverflow.com/questions/12991593
复制相似问题