数据接口
星座屋已为国内多家大型导航网站,资讯网站提供星座数据接口和APP应用服务
1.360导航网站
2.百度APP应用
百度App列表:
3.金山导航网站
4、UC导航网站
先说参数,笔者目前的做法是一般查询采用URL传参,增改采用POST传递JSON字符串提交数据,删除同样使用POST方式。再说返回值,我们在项目中所有接口统一返回JSON数据,并且约定一个格式,比如这个JSON对象含三个KEY,分别是DATA,MSG和STATUS,分别代表了返回的数据,DATA可能是对象或者数组,请求反馈信息和反馈状态码,这样就不用每个接口都说明一遍了。再谈一些细节,在高级语言中,数据有多种类型,STRING,INT,DATETIME等等。而序列化为JSON后,全部变为字符串,这个时候没有给值的字段就需要注意一下,像值类型,为可空时,序列化后值直接是NULL表示,没有引号;为不可空时,值为默认值,同样没有引号,而DATETIME则带引号,"0001-01-01T00:00:00";而像引用类型STRING,无值时,序列化后也变成NULL,而不是空串"",要想用空串""表示,必须给一个默认值,如STRING.EMPTY,说这点是因为当时IOS告诉我说字段值返回NULL时,他们那边报错。还有一种情况是之前遇到过的,就是数值类型的精度问题,当时接口返回一个价格字段,服务器端当然用DECIMAL类型,并且保留两位小数,但是IOS端接收到的值小数点后却多出很多位,而ANDROID没有任何问题,最后只好在序列化前先转成字符串类型。其它需要包含小数位的数值类型当小数点后全是0时,序列化变为整型,这种情况同样需要先转为字符串再序列化。关于DATETIME类型,在作为增改参数接收时,就是反序列化后要插入到数据库,如果你正好使用了SQLSERVER,又使用了DATETIME类型,请注意它的范围是1753-01-0100:00:00到9999-12-3123:59:59,而空串转为时间为"0001-01-0100:00:00",会报异常。
更多文章
友情链接