宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > http协议接口简单概括接口相对复杂的一个接口示例

http协议接口简单概括接口相对复杂的一个接口示例

2021-10-31

谢谢你的邀请

这里只讨论传统的http协议接口,不考虑各种类库提供的面向对象接口的简单总结

简单的界面示例

一个相对复杂的界面示例

 [
            [
                'name' => 'cat1' ,
                'age'  => 2 ,
            ] ,
            [
                'name' => 'cat2' ,
                'age'  => 5 ,
            ] ,
            [
                'name' => 'cat3' ,
                'age'  => 2 ,
            ] ,
        ] ,
        'code' => 1 ,
        'msg'  => 'the API!' ,
    ]);

上面一个比较复杂的接口例子有三个字段,data、msg、code。这是一个相对基本的最佳实践解决方案。实际过程可能会更复杂,返回的数据可能只有这个。

{
	"data" : [
		{
			"name" : "cat1",
			"age"  : 2
		},
		{
			"name" : "cat2",
			"age"  : 5
		},
		{
			"name" : "cat3",
			"age"  : 2
		}
	],
	"code" : 1,
	"msg"  : "success"
}

需要注意的是,在任何情况下,一旦确定了同一接口的规范,除非该接口关闭且不提供http服务,否则任何情况下都必须返回符合该规范的数据。如果服务器异常,则无法返回。正常数据,可以通过code和msg字段告知原因,方便前端调用者自行判断处理

对于数据字段,这个数组的数据来源大致如下:

http协议接口简单概括接口相对复杂的一个接口示例(图1)

json和xml的比较

json之所以比xml应用更广泛,是因为它的结构化描述数据更轻,使用的字符数更少,更节省网络资源。

传递相同的数据

json:

{"code":1,"msg":"the API!"}

XML:



    1
    the API!

json格式表示键值对,而xml格式可以表示键值对以及属性特征

http协议接口简单概括接口相对复杂的一个接口示例(图2)

所以严格来说xml和json不能绝对同等转换,但是可以自定义规范使用json来表示xml的同义,即xml中的属性特征。json 中没有等效的表示

下例中ui:标签中的属性需要用类似json中@的方式来描述,可以实现和xml一样的数据传输,但是要明白本质是不等的

XML:


  
    
    Search
  
  

json:

{
	"@attributes" : {
		"layout" : "vertial"
	},
	"block"       : [
		{
			"@attributes" : {
				"width"  : "200",
				"layout" : "horizontal"
			},
			"input"       : {
				"@attributes" : {
					"value" : "Search"
				}
			},
			"button"      : "Search"
		},
		{
			"@attributes" : {
				"width" : "400"
			}
		}
	]
}

一般规格

该领域的设计规范没有特别的标准,通常是为了确保在一个项目或一个团队中的一致性

http协议接口简单概括接口相对复杂的一个接口示例(图3)

但这还远远不够。为了有一套规范,可供行业内不同团队、不同项目使用,一些大公司编写了通用规范。如果他们都遵守,沟通起来会更方便,减少分歧。项目中的沟通成本

前面说了,因为xml几乎已经被json取代了,这个协议几乎成了一个传说,个人觉得没必要学

这是一套比较复杂的规范,它带来的好处是它在规范内的表达能力非常突出。

通俗地说,现在我想用php,或go,或javaphp接口开发,或任何语言,调用另一个用php,或go,或java,或任何其他语言编写的函数或对象方法。如何实现?是的,不管你用什么语言,只要你在编码中遵循这套规范,那么你就可以达到这个要求

这个规范是soap的json版本,但它不仅是对数据传输的打包方式的替代,而且它的规范比soap的内容简单很多,所以优点是使用起来非常灵活,而且数据传输过程节省了网络资源。建议学习

另外php接口开发,还有一个比较时髦的东西叫,详情请看这里

WEB开发中,使用JSON-RPC好还是API好?

谈谈缓存

http协议接口简单概括接口相对复杂的一个接口示例(图4)

在讨论这个问题之前,我们首先要了解一件事,就是获取我们需要的数据时服务器开销的大小。

上面我们提到,大部分数据来自数据库,或者第三方接口返回的数据,听起来还可以,但遗憾的是这两种获取数据的方式都会有比较大的性能开销。

在数据库中查询时,数据库会操作硬盘,这对系统来说是一个很大的开销,尤其是在查询连接表时,开销几乎呈几何级数增长。

请求第三方接口时,会发送网络请求。如果对方接口有频率限制或者网络环境不稳定,会直接导致接口稳定

当然,我们的开发不会有任何“慢”或“卡”的感觉。毕竟对于人来说,0.01秒和0.秒基本没有区别,但是如果考虑并发,当一个操作重复1w、10w次的时候,这个开销是必须要考虑的,所以必须考虑缓存

前面提到的缓存方法(、、、、、DB、、H2等)都有一个共同的特点,就是读取其中数据的系统开销比之前的数据库或者第三方库或者其他方法要小。通常的做法是将数据直接存储在内存中。读取过程不需要操作硬盘,直接从内存中读取。因此,速度和成本都优于以前的方法。鉴于此,必须考虑缓存

是不是所有的接口都需要缓存?不必要。

通常最基本的原则是不经常变化的数据需要考虑,而经常变化的数据需要专门评估

通常最基本的做法是在接口逻辑中先读取缓存数据,如果没有读取缓存数据,则请求数据库,如果数据请求成功,则先缓存数据,然后返回数据

下次请求此接口时,将首先读取缓存。这时候上次缓存的数据已经在缓存中了,直接从缓存中取出数据返回。这样就避免了对数据库的请求,达到了减轻数据库压力的目的。

这种逻辑导致的问题是,更新数据库中的数据时,需要使相应的缓存失效。如何掌握使相应缓存失效的时机是一个比较重要的知识。通常,更简单粗暴的做法是指定缓存过期时间。在要求较高的系统中,需要特殊的方式来处理,这里不再赘述。

原谅我偷懒,这篇文章值得参考

Star Boy:缓存穿透、缓存崩溃、缓存雪崩原因+解决方案

常用的有,,,, DB,, H2等。

其中是纯内存缓存,不能持久化数据,可以缓存的数据类型比较有限,性能也是最优秀的

支持更丰富的数据类型,数据可以持久化到硬盘,建议考虑

其他未实战使用的缓存软件暂不评论

以上

Tag: 缓存服务器 xml格式 xml数据库
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • php+免费开源cms织梦CMS收费意味着什么?CMS突然收费了!php+免费开源cms
  • PHP中使用提高动态网站性能安装的说明书(图)
  • 前端开发工程师不都是要会一门后端开发语言吗?
  • 来自百度网盘超级会员V4的分享rips代码审计工具
  • C语言是高级编程语言,高级语言主要特点是什么?
  • php是什么文件格式?如何打开可以使用编辑器?
  • 微信公众平台php开发微信公众平台运营最难的不是账号怎么注册,怎么使用微信公众平台 php开发
  • 一致性hash算法php开源本文对分布式存储技术架构体系进行综述分析,选型需考虑php 一致性hash算法
  • 各家PLC的标准与编程语言的关系及标准兼容性
  • wap网站建设疑问

相关

Java的微信开发中使用XML格式和JSON格式数据的详解及

php缓存技术三星收购腾云网络Data,拓展面向服务器和数据

php网站开发工具如下使用各种缓存插件让我们先考虑一下在大量

网站性能优化对于大型网站来说的重要性有哪些?

网站性能优化对于大型网站来说的重要性有哪些?

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应

大型网站的架构演化过程,你知道吗?(上)

一个百万级PHP站点的网站架构,你了解多少?

一个百万级PHP站点的网站架构,你了解多少?

如何修复被黑客篡改的网站代码与数据库?入侵迹象与范围评估指南

如何修复被黑客篡改的网站代码与数据库?入侵迹象与范围评估指南

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

微信支付SDK漏洞曝光!谁会用到它?商家必看

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们