我是REST Web服务的新手,非常习惯于RPC.我通过阅读像这样的几个帖子来了解REST的优点.
我正在使用django-rest-framework在django中开发服务器.
虽然有这个问题(或问题):
我有这个型号:
class Poll(models.Model):
questionString = models.CharField(max_length=500, blank=True)
timeToAnswer = models.IntegerField(default=30)
startDate = models.DateTimeField(null=True, db_column='startDate', blank=True)
token = models.CharField(max_length=20, blank=True, unique=True)
class PollAggregator(models.Model):
name = models.CharField(max_length=135)
description = models.CharField(max_length=500, blank=True)
votersToken = models.CharField(max_length=20, null=True, blank=True)
class PollPollAggregatorRel(models.Model):
pollAggregator = models.ForeignKey(PollAggregator, null=True, db_column='pollAggregatorId', blank=True)
poll = models.ForeignKey(Poll, null=True, db_column='pollId', blank=True)
Run Code Online (Sandbox Code Playgroud)
所以我可以进行一次民意调查,或者我可以在民意调查聚合器(即房间)中汇总一堆民意调查.
所以我创建了其余的调用:pollList,pollDetail,pollAggregatorList,pollAggregatorDetail.但是我在为PollPollAgregatorRel设计时遇到了问题.当然我可以使用PollPollAgregatorRelList和PollPollAgregatorRelDetail进行正常发布,获取,更新,删除.因此,如果我想在REST样式中建立一个poll和poll聚合器之间的新关系,我会:
我的第一个问题是有没有更容易和更简单的方法来做到这一点?
如果我使用类似RPC的Web服务,我会做类似的事情:
因此,使用RPC之类的,客户端只使用一次调用而不是需要调用2次的REST.在这种情况下,对服务器端和客户端使用RPC似乎要简单得多.
第二个问题是:在同一个API中同时使用REST和RPC是不好的做法吗?