我正在尝试将Javascript API调用转换为Python.工作的JavaScript代码工作正常,生成这样的时间戳:
var curdate = new Date();
var gmtstring = curdate.toGMTString();
var utc = Date.parse(gmtstring) / 1000;
Run Code Online (Sandbox Code Playgroud)
随后在API调用中对此结果(自纪元以来的这个秒数)进行散列并使用,但这是相关部分.如果有人能让我知道转换它的正确方法,那将非常感激.
以下是不同方法的不同结果的一些细节:
var curdate = new Date(2013, 7, 10);
var gmtstring = curdate.toGMTString();
var utc = Date.parse(gmtstring) / 1000;
Run Code Online (Sandbox Code Playgroud)
结果:1376089200
from datetime import datetime
import calendar
d = datetime(2013, 8, 10)
calendar.timegm(d.utctimetuple())
Run Code Online (Sandbox Code Playgroud)
结果:1376092800
我显然遗漏了一些东西,有人可以启发我吗?
我最初在我的例子中犯了一个错误,因为Javascript使用0基于日期而Python的日期是从1开始的.
Jonathon亲切地解释了由于Python违约到UTC而在值中的差异是不同的,因为Javascript默认为本地时区.就我而言,这是GMT,这是API所要求的.我现在只需要在Python中获得此结果.
解决方案是提供的时区不匹配.虽然我仍然遇到第三方api的问题,但我至少现在正在接受正确的时间.
这可能是清理过来的:
from datetime import datetime
import calendar
import time
import pytz
def GenerateTimeStamp(d):
europe = pytz.timezone('Europe/London')
d = europe.localize(d)
tuple = d.utctimetuple() …Run Code Online (Sandbox Code Playgroud) 所以我花了几个小时来浏览Web API版本控制的所有真正奇妙的建议.我最喜欢的一些,对于那些和我一样有趣的人,没有特别的顺序:
http://www.troyhunt.com/2014/02/your-api-versioning-is-wrong-which-is.html
http://www.pluralsight.com/courses/web-api-design
http://www.pluralsight.com/courses/implementing-restful-aspdotnet-web-api
因此,所有这些建议都非常有助于设计API本质上的"前端".我们可以对API调用进行版本控制......现在,我正在努力解决这个问题.
对于拥有多个产品(这是一个新产品)的公司来说,这是一个大量数据驱动的应用程序.一些需要长期支持API调用的大客户,一些希望获得最新版本的小客户.我们可以使用类似于里程碑/长期支持版本的API来管理.大.
但在实践中,这将变得非常混乱,非常快.我们一直在努力将我们自己的网站,beta内部/外部API,存储库层以及甚至是要启动的SDK分层.我们将每个版本分成不同的分支,但它是SAAS - 我们托管数据库.因此,我们不仅能够对API调用进行版本控制 - 而且还包括其下的所有内容.业务逻辑,存储库和数据库.我们甚至没有开始进行单元/集成测试.
因此,尝试并且可能失败只在这里提出一个问题.
是否有一个合适的模式来构建一个分层的,数据驱动的.NET应用程序来应对多个版本?
具体来说,数据库将如何更改以及如何构建通用堆栈以对其进行全部版本化.我的一些想法包括:
我们有相当数量的开发人员,无论我写了多少ace文档,实际上它只会在某些东西不起作用时被读取.因此,理想情况下,开发人员必须尽可能明显地明白这一点.