例如Facebook Graph API:为什么after和beforebase64编码的数字?
{
"data": [
... Endpoint data is here
],
"paging": {
"cursors": {
"after": "MTAxNTExOTQ1MjAwNzI5NDE=",
"before": "NDMyNzQyODI3OTQw"
},
"previous": "https://graph.facebook.com/me/albums?limit=25&before=NDMyNzQyODI3OTQw"
"next": "https://graph.facebook.com/me/albums?limit=25&after=MTAxNTExOTQ1MjAwNzI5NDE="
}
}
Run Code Online (Sandbox Code Playgroud)
与普通数字相比,它可能带来什么好处呢?
如下面的python日志所示,优点不能是数据的简短表示或包含不安全字符的数据:
>>> base64.b64decode("MTAxNTExOTQ1MjAwNzI5NDE=")
'10151194520072941'
>>> len('10151194520072941')
17
>>> len("MTAxNTExOTQ1MjAwNzI5NDE=")
24
Run Code Online (Sandbox Code Playgroud) 我们正在开发一个代码量相当大的 PHP5 项目,上周我开发了一个 RESTful API 的 PoC。我们将模型类与业务类分开。
尝试实现 CRUD 功能,我发现,直接针对模型实现 CRUD 将非常简单,而针对业务逻辑实现它不是,因为它的功能特定于当前现有的视图,并且它的接口不提供实现 API 所需的通用数据访问模型。
想到这里,我想到了以下问题:
与数据交互、保持模型的灵活性并保持模型目前不关心的功能(例如在更改电子邮件地址时发送带有激活链接的邮件)的最佳方式是什么?
以前使用 django 进行了大量工作,其中大部分业务逻辑都在模型中实现,为什么还要将业务逻辑分开?你有什么现实生活中的例子吗?如果有的话,这解决了什么问题?
我也想到了一些可能的解决方案:
你认为有什么优点和缺点,你会怎么做?