JSON数据类型介绍
js的子集,完全独立于编程语言的文本格式来存储和表示数据。在js语言中,一切都是对象,因此任何支持的类型都可以通过json来表示。
数据类型:
string :"hello"
number:1 2.5 2e-7 -5
boolean:true false
Null:null
Array:[1,true,2.5]
object:{"key":"value"}注,键必须字符串,键和值之间:隔开,不同键值对用逗号隔开,最后一个键值对后边不能加逗号。值可以是任意类型。
{
"key1":"value",
"key2":-123.6,
"key3":{
"name":"温泉",
"QQ":3288855555
}
"key4":[1,2,3,4,5],
"key5":["a","b","c","d"],
"key5":[
{
"name":"a",
"age":18
},
{
"name":"b",
"age":18
},
{
"name":"c",
"age":18
},
{
"name":"d",
"age":18
}],
"key7":null
}
访问内容
key3.name
key4[2]下标也是从0开始
key6[0].name
{
"qq":3333388888,
"ID":66666,
"msg":"哈哈哈哈\n \r \r\n哈哈\"a\"哈哈哈哈"
}
msg解析出来的是:
哈哈哈哈
哈哈"a"哈哈哈哈(转义)
网络请求介绍(POST、GET等)
URLRequest
1、URL:资料位置,可以放http开头网址,ftp、使用者的档案位置
2、Request:你想要做的事情&用什么方法
var timeoutInterval:TimeInterval
var cachePolicy:URLRequest.CachePolicy
var httpShouldHandleCookies:Bool
cache:就是指暂存资料,把自己取得过的网页资料暂时存在某个地方,方便下次快速使用。是用空间换取时间节省流量的方法。
cookies:有些网站会记录你的浏览行为,这些东西就是用这些属性来改变。
HTTP Request Method
处理网络上的资料交流。
标准规范中有八种解决方法,比较常见的是前四种:
·GET:读取。浏览网页,获取数据(也可以提交,但不常用)
·POST:建立。新增资料或进行验证,提交数据
·PUT:修改
·DELETE:删除
·OPTIONS、HEAD、TRACE、CONNECT
GET vs POST
GET和POST都可以提供资料,但是GET是放在网址也就是header里面,POST是放在body里。
所以GET可以放的类型和资料大小有限。
get请求回退或者刷新服务器没有影响,post请求回退会重新提交数据请求。
get请求可以被缓存,但是post请求不会被缓存。
get请求会被保存在浏览器历史记录中,post不会。get请求还可以被收藏为书签,因为它参数就在url中,且安全性差,post不可以,其参数在body里。
get只支持url编码,post支持多种。
前后端api规范
API
api的全称:应用程序编程接口,是一组定义软件组件之间交互的规范,允许不同软件系统之间进行通信。使用者可以不必了解内部实现,直接拿来用就可。
就比如,开发一个应用程序,其中要获取时间信息,可以直接使用提供商的api而不必了解如何实现,这样这个程序就可以利用外部服务,准确的将时间信息提供给使用者。
常见规范
1、从安全性的角度考虑,我们尽量使用post作为接口请求方式,前边也提到,get参数存放在url中,不安全。
2、幂等性
幂等性是指任意多次请求的执行结果和一次请求的执行结果所产生的影响相同。说的直白一点就是查询操作无论查询多少次都不会影响数据本身,因此查询操作本身就是幂等的。但是新增操作,每执行一次数据库就会发生变化,所以它是非幂等的。
幂等问题的解决有很多思路,这里讲一种比较严谨的。提供一个生成随机数的接口,随机数全局唯一。调用接口的时候带入随机数。第一次调用,业务处理成功后,将随机数作为key,操作结果作为value,存入redis,同时设置过期时长。第二次调用,查询redis,如果key存在,则证明是重复提交,直接返回错误。
3、接口地址:每个api都应有唯一的url。