由于项目中使用到了leancloud里面的RESTful API 进行数据请求所以讲一下。
首先什么是RESTful API,RESTful API可以理解为充满了具体状态转移的API,通过语义化方式请求资源,其全称是Representational State Transfer,是一种基于 REST 架构风格设计的应用程序接口(API),用于在网络中进行资源的交互和通信。
他的设计规范如上:HTTP的不同请求方式就是,PUST,GET之类,通过HTTP响应码我的理解其实就是做项目中你使用Postman,Apifox测试接口时,你在写后端时设置的工具类,如果数据请求成功什么的,就给你返回相对应的响应状态码,相对于前端来说这你很容易,你console.log一下你就知道有没有成功了。
RESTful API的期望效果,这个没啥,面试可能会提下,知道就好
使用RESTful API的好处,有效降低沟通成本,前后端解耦更彻底,前端业务更灵活,我的理解的话他还有一个就是大大减少了URL的数量,好像也可以理解为有效降低沟通成本。
回到项目而言,leancloud文档里面的RESTful api使用:
举个例子:
GET https://{{host}}/1.1/scan/classes/category HTTP/1.1
X-LC-Id: {{appid}}
X-LC-Key: {{masterkey}},master
Content-Type: application/x-www-form-urlencoded
limit=5
这是使用HTTP协议的GET方法,向URL是https://{{host}}/1.1/scan/classes/category发起数据请求
。同时,请求头部包含以下信息:
X-LC-Id: {{appid}}
:这是一个HTTP请求头部,{{appid}}
是一个占位符,通常应该被替换为具体的应用程序ID。X-LC-Key: {{masterkey}},master
:这也是一个HTTP请求头部,{{masterkey}}
是一个占位符,通常应该被替换为具体的主控密钥(Master Key)。这个头部似乎指定了使用主控密钥进行访问,同时具有master权限。Content-Type: application/x-www-form-urlencoded
:这是另一个HTTP请求头部,指定了请求的内容类型为application/x-www-form-urlencoded
,这通常用于表单数据的提交。
请求体中包含了数据:
limit=5
:这是请求体中包含的数据,是一个键值对,其中键为limit
,值为5
。这可能是用于请求过滤或限制返回结果数量的参数。
那么既然如此,当然我们也可以用curl:
curl -X GET \
-H "X-LC-Id: {{appid}}" \
-H "X-LC-Key: {{masterkey}},master" \
-H "Content-Type: application/json" \
-G \
--data-urlencode 'where={"id":{"$in":["1"]}}' \
https://{{host}}/1.1/classes/goods
leanclound文档中提供了一种新的 API 鉴权方式,即在 HTTP header 中使用 X-LC-Sign
来代替 X-LC-Key
,以降低 App Key
的泄露风险。例如:
curl -X PUT \
-H "X-LC-Id: {{appid}}" \
-H "X-LC-Sign: d5bcbb897e19b2f6633c716dfdfaf9be,1453014943466" \
-H "Content-Type: application/json" \
-d '{"content": "在 HTTP header 中使用 X-LC-Sign 来更新一篇博客的内容"}' \
https://{{host}}/1.1/classes/Post/<objectId>
详细还请参考leancloud文档,https://docs.leancloud.cn/sdk/storage/guide/rest/
今天的内容差不多了,今天出去去招聘会了,有点累,回来的也比较晚,所以没把分类页面做完,讲了这些前置知识。