本篇文章给大家谈谈社区系统接口设计,以及社区系统开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享社区系统接口设计的知识,其中也会对社区系统开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
结合实际谈一下学习社区信息化管理的意义。
随着城市化进程的加快,社区已成为完善城市功能、提高城市管理水平和居民素质、维护社会稳定的重要载体.在社区建设过程中推进先进适用技术进入社区,整合更多的科技成果、科技资源汇聚社区,重点推进"新知识普及,新技术示范、新产品应用",以提升社区管理与服务的水平和效率,提高社区居民的生活质量成为工作的重点.
1 我国社区建设发展现状
目前新技术的普及应用,成为社区建设工作不断深入、人员素质提高、工作效率提升的必要手段,社区建设中科技的应用主要有三个方面,一是以社区服务设施建设和社区办公服务用房建设为主的基础设施硬件建设,二是以社区办公系统网络化为主的软件建设,三是实现以社区服务对象社会化,服务内容多样化,服务形式网络化为目标的社区服务.通过应用网络技术、安防产品等技术成果,有效地满足了市民集咨询、救助、服务、娱乐为一体的日常需求,同时也为进一步探索和尝试先进适用技术的集成示范和公共事业新产品的推广应用,创建"三新"社区,满足社区居民对科技、信息、精神文化等方面需求提供了有力保障.
2 镇江正东路街道社区建设实践探索
镇江市正东路街道位于镇江市区东南部、毗邻古运河,是镇江市经济、文化、军事中心,辖 8 个社区.在社区建设中注重项目建设、科技创新、民生改善,重视安防产品、环保产品的应用和推广,采用网络宣传和服务方式,应用远程教育、电子阅览室等形式,配合丰富多彩的社区活动,加强科技的宣传和普及."十二五"时期,街道进行社区信息化平台建设,普及信息化设备和软件,积极推进社区内部管理电子化,减轻工作负担,提高办事效率.以社区信息化平台为基础,加强新知识宣传和新技术示范应用,实现网上网下的服务网络,把社区建成以数字化和环保型为特色的科技社区,让居民享受科技成果,改善居住环境和提高生活质量.
3 社区信息化服务平台建设内容
社区信息化服务平台整合政府部门、社区组织、服务企业和居民自我管理与服务的资源和工作流程,完成社区房屋、居民、办事、公文等各类资源的基础数据采集、整理和入库,形成一套完整的社区基础数据库;对已有的相关业务管理系统进行全面的利用和整合,建立社区综合业务管理体系;建立一套完善的社区服务营运体系和居民信息互动服务系统,增加沟通渠道和提升服务水平.系统架构如图所示.
论文摘要
3.1 社区门户网站
建立门户网站,进行社区基本情况和服务信息的宣传,旨在提高工作效率、加强各职能部门间联系,提高服务质量.重点是服务、信息发布、政策法规和办事流程查询、表格下载等.
3.2 社区信息管理系统
通过对社区包括常住人口、流动人口、志愿者、计生对象、社区内企业、出租房、营业用房、物业等信息的采集及人工录入或者导入,汇集各类部门数据而成的综合数据库,在平台中作为基础数据采集平台.并及时的记录和处理社区救助、社区卫生、计划生育、等业务运作过程中产生的各种业务信息,规范社区工作.
3.3 社区服务管理系统
实现社区的社区台账、社务公开、政务受理、协同办公等政务服务;社区老人关怀、宣传教育、求职招工、社区志愿者服务信息、民意民生调查等社区服务信息;通过网站和热线电话等方式,覆盖家政服务、外卖服务、教育培训、家电维修等商务服务.
3.4 社区矫正系统
建立社区矫正信息数据库,向社区矫正人员发放服务卡,通过移动信息平台--企信通,以短信群发的形式发送各类信息,可对社区矫正人员进行法律法规的宣传、组织社区服务、集中教育、心理矫治活动等信息的告知,更大程度地提高矫正效果和监管效率.
3.5 信息互动服务系统
利用网络通讯技术,结合社区服务工作的各项功能实现服务人员与居民的互动沟通,为社区服务人员和居民沟通架设了一条绿色通道,及时方便地提供便捷优质的服务,将社区服务延伸到社区外,充分体现主动服务和居民关怀的理念.
3.6 社区居民健康服务查询系统
通过与社区医院信息管理系统的接口设计,实现在统一的综合信息服务平台上,居民能够了解医疗保险的政策与制度,个人医疗健康咨询和查询医疗保险帐户信息,进一步保护和增进社区居民身体健康,保障居民的切身利益.同时,社区居民通过对系统的使用及熟悉,将普及信息化方面的知识和技能.
3.7 社区安防监控管理
在社区已有的安防监控管理的基础上,通过网络化的集成监控与管理界面,进行方便、简单监视、控制和管理,社区安保人员可监控各个重点场所的现场情况,及时处理突发事件,保护社区居民的人生财产安全,并可有效提高物业管理和服务质量和效率,最终提升社区的安全生活品质.
4 社区信息化建设意义
通过社区信息化平台的应用,在社区建设中达到了以下目的:
(1)信息化建设为社区管理基本信息提供整合分析的平台,为基层的服务人员提供一个管理的平台;为社区住户的日常生活提供各种便利;服务人员与居民之间的沟通可通过网络、计算机、手机等信息化设施,便捷地进行数据传输、信息交换,实现信息共享和与居民间的双向沟通,使居民能参与社区的管理和服务活动;信息化手段提供更为丰富的表现手法,可通过实时监控设施,做到实时监管.采用更为先进的技术手段,增加服务的及时性和多样性,达到全方位社区服务目标.
(2)社区信息化系统所提供的部分业务最终的实现必须依靠社区人员或志愿者等提供的服务,我们整合社区各种服务资源,与各个部门的协同配合,实现社区服务信息化网络、社区服务电话热线网络、实体服务网络"三网联动"以及信息服务与实体服务的"虚实结合",更有效地推进"新知识普及、新技术示范、新产品应用"的科技社区建设,让科技创新成果惠及广大社区居民,实现居民的智慧生活、平安生活、低碳生活.
智慧社区如何真正实现智慧?
9月13日消息,《2016-2017中国物联网发展年度报告》在无锡发布。《年报》显示,截至2017年4月,我国100%的副省级城市、87%的地级以上城市,总计超过500个城市,均已明确提出或正在建设智慧城市。
智慧城市的建设离不开其下各个模块的建设发展,而智慧社区建设作为其中基础的一环有着非常重要的战略地位。而到底如何做好智慧社区建设将项目落到实处?深圳零壹移动互联系统有限公司开发出的1号社区,4年内经历了社区行业风潮的跌宕起伏,最终站在了行业的“第一梯队”。也许我们能够从零壹的模式中得到一些启发。
业主无须携带门禁卡,苹果手机开启蓝牙,靠近门禁即刻自动打开(无须任何操作);安卓手机只需亮屏摇一摇,门就自动打开。户业主在1号社区APP端每天都会生成不同的访客密码,通过微信、QQ、短信分享给访客。访客输入密码即可打开小区大门和对应来访的单元门,快捷方便。
2、提升物业服务水平的同时,为物业创造实质性价值,让物业管理行业更值钱。
1号社区将物业管理系统、门禁系统、停车场系统和对讲系统的软件硬件整合到同一个平台上来,杜绝了之前物业多系统操作繁杂的特点,提高了物业管理服务水平。因此1号社区为物业公司节省了大量的花费。易操作、可视化、智能化的物业管理平台亦通过APP后台系统全面解决了管理问题,大量节省了人力、物力并大大提升了工作效率,获得业主的认同。
3、智能化社区管理场景
通过1号社区APP控制的小区智能安防硬件(车场、门禁、访客管理、电梯门禁)和智能家居硬件、可穿戴,打造智能硬件移动化管理平台,让APP成为业主生活中必不可少的部分。服务业主,解决APP下载、高频使用、活跃及黏性的问题。
4、完整的智慧社区生态必将引领未来社区。
零壹互联开发的1号社区是截止到目前唯一的全生态全平台智慧社区整体解决方案。其顶层设计基于移动互联网、物联网和大数据系统三大核心技术,是中国唯一能把社区智能安防硬件、智慧物业管理系统、智慧社区全媒体广告平台、智慧社区生活服务平台和智能家居等多个开放平台链接起来的系统。
正是由于全方位多角度的整体解决方案,让零壹成为了智慧社区建设中的佼佼者。超过220个城市,2500多个小区正在或已经落地,这将为推动智慧城市的发展打下坚实的基础。
人工智能不仅通过刷脸、语音识别、算法推荐等丰富多样的应用,逐渐走进人们的日常生活,而且正在催生一场史无前例的信息、产业和管理革命。随着人工智能的深度应用,必将改变一些行业的工作模式。智慧 社会 运用人工智能促进信息互联互通、开放共享意义重大,让我们充满期待。
蓝图往往是美好的。但是,要将美好的蓝图真正变为活生生的现实,却不是一件容易的事情,需要付出艰苦努力。实践中,应处理好”三个关系”:一是顶层设计与基层需求的关系,决不能指望用简单的调研、座谈或征求意见去替代科学、系统、全面、完整的顶层设计;二是技术攻关与专业突破的关系,一定要深入研究社区工作特点和规律的基础上开展工作;三是系统建设与实践应用的关系,必须立足于现实、着眼于未来,把生产、展示、提供更及时、更全面、更准确、更直观的社区服务产品作为工作目标。
智慧社区从功能上讲,是以社区居民为服务核心,为居民提供安全、高效、便捷的智慧化服务,全面满足居民的生存和发展需要。
智慧社区本质是借助物联网、互联网、移动互联网以及传感器等把物业管理包括安防、通信、消防、通行等系统融合到一起,实现了智能楼宇、人工智能、社区物业、公租房管理等,形成 科技 社会 新形势管理模式,以街道、社区、楼宇、家庭为版图的神经元信息采集网络。
今天着重聊聊智能社区通过可视化技术给社区实现了那些功能?
融合视频监控、报警、门禁、智能停车场、AI 人脸识别、闸机系统、人流管控、流量监控等系统,联动各个安防子系统,实现社区办公区域、公共区域、设备区域等安防管理,实现综合一体化智能管理,协助社区运维人员提高管理效率,促进基础安保业务将智能化、数字化管理迈进。
视频中的智慧可视化监控案例选以 Hightopo 可视化系统搭建的。两侧二维面板辅以数据可视化,对社区各类基础建设数据以更加多样化形式展现,为社区规划、布局、分析和决策提供技术支撑,推进社区数字化转型建设。
HT 通过 3D 仿真形式对社区整体进行精细化的还原建模,从社区的整体环境,到楼宇周边环境,再到楼宇内外部设备进行立体仿真展示。采用轻量化三维建模技术,根据社区现场的 CAD 图、鸟瞰图、设备三视图等资料进行外观高精度建模还原,通过 HT 实现可交互式的 Web 三维场景,可进行缩放、平移、旋转,场景内各设备可以响应交互事件。
随着信息技术的发展,建筑管理也有了更多的方式,楼宇电梯系统、楼宇照明系统、消防系统、安防系统、环境与空调系统的部署可以充分实现楼宇管理智能化、数字化。智慧楼宇可视化整合对接各类业务系统的基础上,通过 HT 智慧社区可视化平台实现对楼宇各系统的综合统一管理,减轻了楼宇管理成本负担,提高经营管理效率。对于不同的楼宇情况,图扑软件也有多种针对性的解决方案。
照明系统
集成楼宇内外的照明系统,用 HT 智慧社区可视化平台对楼宇内的照明设备进行集中监控,可调整不同时段的灯光效果模式,对环境照度以及照明能耗通过数据趋势图进行分析展示,对室内外照明检测运行状态进行实时更新,让管理人员能够及时处理照明系统问题。通过系统接入可视化,让问题及时发现及时处理,帮助运维人员及时处理照明设备的维修问题,提高楼宇的管理效率和服务水平。
电梯系统
主画面以线框的 科技 风格为主的大楼设计,周边道路以流金样式呈现,线框内电梯以黄色效果展示,升降情况将二维面板和三维场景进行联动结合,对接电梯实时运行数据,实现电梯二三维一体化的实时运行监控,电梯监控视频展示各不同电梯的内部情况,右侧辅以电梯运行情况:里程数、载人数量、故障次数、检查次数,以及常规电梯、消防电梯设备运行时的实时情况并对电梯报警情况进行数据趋势分析。以便于运维人员对电梯进行预警监测与及时设备安全检测。
BIM 楼宇建设
建筑信息模型 (Building Information Modeling,BIM) 是一种建筑行业管理信息系统中的三维模型数据,工程建设专业人员可以通过 BIM 获取相关信息数据,更高效地规划、设计、构建和管理建筑及基础设施。智慧社区将 BIM 楼宇数据叠加到地图场景中,实现 BIM + GIS 的结合展示。通过对 BIM 模型不同楼层及楼层内的资产建设进行分离,动态还原演示了楼宇的建造过程。
消防系统
消防装备的定位显示通过红光点进行提示,HT 将消防各项预警监测信息通过可视化形式给运维人员提供了楼宇管控更便捷高效的方式。可以从面板查看到各楼道消防主机、通道的运行与i监测情况;烟感、电气火灾数量情况;消防报警的次数;消防水压的实时更新动态,对于异常情况可进行及时处理。以及实时更新各电梯、设备的高危火险情况。在灾难发生时,可视化系统可迅速知晓问题所在,便于消防人员进行对应方案的执行、完成最优逃生路线的规划,调用告警系统和广播等形式提醒楼宇内人员逃离危险,确保园区内人员生命财产安全。
能源
根据社区现状、能源管理特点,充分考虑各能耗管理的整合,设计科学高效,可实施性强,符合社区运维管理的数字化智慧园区解决方案。 为社区运维人员提供一个全面实时、可感可知的能源监测决策分析平台。
Hightopo 拥有丰富的 2/3D 可视化展示经验,可供用户打造许多行业标准下,具有代表意义的可视化管理系统,不论是从智慧地产、智慧社区再到智慧城市。
打造智慧社区生态:
以移动互联网为载体,搭建社区掌上平台,连接物联网设备+物业服务+社区o2o服务。营造智慧社区生态系统,硬件是基础条件,辅之以其他各种便民服务。
来自浩邈社区的回答,望采纳。
什么是智慧社区?智慧社区是这样的,首先
一.1 需求分析
针对以上业务现状中出现的问题,需求分析如下:
1) 一套平台,统一管理
系统使用一套平台,在该平台上集成各个子系统,包括门禁、梯控、可视对讲、访客、巡查、停车场、视频监控等,各子系统之间可实现信息资源共享、业务联动,各子系统由平台统一管理,充分发挥系统整体的应用价值。
系统接口和协议应符合相关的技术标准,系统中的软件平台、硬件设备可与其它厂商的软件平台、硬件设备对接。
2) 产品丰富,功能齐全
多种开门方式可供用户选择,比如刷卡开门、扫描二维码开门、蓝牙摇一摇开门等;使用人体生物特征开门便于随身携带,不易丢失、被盗、被复制等,比如指纹开门、人脸开门,其中人脸开门还可以解放双手。
3) 业务合理,提升体验
访客流程优化。快速登记,访客不需要手写登记,而是在电脑或其它电子设备上,通过点击鼠标或触摸按键等简单的动作完成登记;访客活动范围控制,可以根据为访客开放的权限来控制,无需依靠保安人为监管;可靠的访客身份确认系统,可以通过刷访客身份证等方式,快速准确地判别访客身份;快速查询登记记录,可以快速查询一段时间内到访的访客名单,或是某一访客曾经到访次数、每次到访和离开的准确时间等信息;访客预约,访客可以提前预约,到访时无需登记或自助登记后就可以开门,对于开车到访的访客,可以在预约时登记车牌号,到访时直接驶入小区停车场,无需人工确认。
停车场管理系统可以支持车位预约、多种缴费方式、按不同区域收费。
4) 整体规划,科学部署
依据小区的不同应用场所,以及客户的需要,进行视频监控产品选型,整体规划,达到重点区域的全方位覆盖。
停车场设备利旧。充分利用当前已建停车场管理系统和地下车库视频监控系统可利旧的设备,整合到新建的智能化停车场管理系统统一管理,节约建设成本。
5) 智能应用,方便运维
运维管理。系统应具备硬件设备的工作状态监视能力。由于系统设备较多,布点零散,为保证系统的稳定性,系统应具备智能网管功能,对系统内的网络运行状况、设备运行状况、服务器运行状况等相关数据进行采集、分析、处理,当系统设备发生故障时产生告警以提醒修复。
智能监控。目前很多视频监控需要人工实时查看,容易漏掉异常情况,并且在事后取证时,需要人工查找,从大量的原始视频中提取证据,耗费大量人力物力。所以需要视频监控系统可以自动实时识别监控画面中的异常情况,在事后取证时也可以自动搜索,提高物业管理效率,降低物业人力成本。
总体目标
针对不同情况,推荐使用以综合安防管理平台为核心,融合各安防子系统应用,实现各子系统之间的智能化联动、信息和资源共享,从而实现系统的集中管理,优化管理效率,降低管理成本,提高警情响应速度等。
提供符合国际标准的接口和协议,不仅便于内部整合管理,还方便与其它厂商的平台和产品对接。集成商可以结合现代化小区物业服务至上的经营管理理念,在安防管理系统基础上开发业务应用平台,或与现有业务应用平台对接,为住宅小区提供增值服务,进一步提升住宅小区的生活品质。
在人员管理方面,按业主、访客、物业等不同角色分类,人员信息、权限统一管理,打造安全、便捷、高效的业主注册流程,业主使用流程,访客访问流程,物业管理流程等,提升用户体验,提高物业管理效率。
在视频监控方面,努力打造一套全高清的视频监控体系,包括前端采集、中间传输、后端存储、中心解码、大屏显示一系列的全高清体系,满足用户对视频图像看、存、用的需求。通过整体部署,以“圈、线、面、点”为理念,结合现场实际环境,依据客户具体需求,为各点位合理选择设备,集成智能感知和智能算法,最终实现小区视频监控的智能应用和全方位覆盖。
在车辆管理方面,集成出入口控制与管理系统,利用车牌识别技术实现号牌数据比对,确保车辆的进出有据可查,车辆的进出可控,合理利用停车位,固定车辆快速通过道闸。
总之,智能充分分析小区安防行业现状和业务需求,从地产商、物业、业主不同角度规划设计,致力于提供一套安全可靠、技术先进、管理便捷、使用舒适的小区综合安防解决方案。
这也不是咱老百姓关心的事啊。
智慧社区的实现需要依托智能化和信息化的配合,目前国内已经有很多智慧社区成功实施和实现运营的案例,入万科,金地等地产的楼盘,很多都实现了智慧社区。
智慧社区主要包含以下几个部分。
一,社区的智慧化运营
主要侧重物业管理,日常运营。
二,社区的智慧化安防
社区住户的安全问题,实现方式有人脸识别,二维码识别等方法。
三,社区的智慧化管理
物业APP,住户可在家轻松完成物业费,停车费,访客接待,水电费的远程缴纳等等。
四,社区的增值服务(社区O2O)
如家政服务,洗衣服务,宠物服务等等。
针对这几部分,目前市场已经有一大批的设备厂家可提智能化和智慧化的解决方案。智慧社区的实现是一个庞大的系统性工程,需要有一定技术实力的系统及厂商才可完成。
社区医生工作站的基本功能
业界对社区医生工作站系统的认识近来趋于一致,认为一套成熟的完善的社区全科医生工作站软件产品应该具备如下基本功能:
一、数字接诊:可以通过刷卡或输入单号等多种方式自动获取就诊病人的基本资料。
二、电子病历:包括电子病历的书写、处方及验单的录入,病历书写和处方下达支持多种输入方法,有比较完善的中西医主诉、体征等公共常用词库;支持建立个人常用词库,支持自定义电子病历、处方公共模板和具有个性化功能的个人模板。在填写电子病历时,系统提供对过敏药物药品的提醒功能,方便医生在开处方时做出注意事项,并根据病人的过敏病史限制处方用药。
三、支持智能诊断和辅助分析,可以自动从居民健康档案和当前电子病历中采取相关数据并进行辅助分析,为医生提供诊断思路。能够提供多种输入方式:ICD码输入、ICPC码输入、中文疾病名输入及模糊匹配选择输入、专科常见疾病列表(包括中医诊断)选择输入等;提供诊断描述的输入表,提供诊断的主次分级,用于疾病统计分析。系统判断诊断为传染病时自动生成传染病报告,报本院相关部门。中医诊疗:有中医征候、中医处方、中医诊断、代表方剂的模板;有中药、中医制剂及中成药的用法、配伍禁忌校验。
四、网络传输:医生利用工作站系统提供的生成器直接下达电子处方、化验单、检查单、治疗单、门诊手术预约单,即时显示药品详细信息及收费标准。处置单(处方、各类申请单等)支持网络传输,到达收费处以及相关部门。
五、信息查询:提供病案和处方的信息查询、药品缺药、医疗违规警告、用药咨询、配伍禁忌的校验、剂量超量提示、适应各种公费医疗和医保政策、处方权限制等。具有专门复诊病历录入与管理功能,关联病患个人病历的信息,支持既往病历信息的共享与复用。
六、辅助检查检验结果文字报告查询:提供各医技功能模块的接口件,并与各医技模块连接,可以随时查询病人的检查结果,并提供正常参考值对照。
七、门诊工作管理:医生可管理当前候诊病人和已就诊病人,可设置当天最大门诊量,并可在医生工作站上做到自动刷新医生排班信息,生成医生个人工作日志,门诊日志,肺结核、性病、法定传染病的登记本,20岁首诊测血压的记录本。
八、健康档案维护管理:以电子健康档案为基础,在接诊的同时系统可以自动调出该病人的健康档案,并提示新建或更新档案;诊疗结束后智能归档。
九、接口设计:可与第三方软件做到无缝连接。提供与检验设备的接口程序。
十、急诊急救:社区医生工作站系统还应该随机提供急诊等特殊紧急情况下的处理方案。
十一、退药管理。
十二、统计分析:提供病历查询,疾病统计分析等,可按多个关键词检索病历,并按条件进行统计分析。
目前,已经有很多的公司如济南大成华博生物技术有限公司等面向市场提供社区医生工作站系统的商品软件,以满足社区卫生服务机构数字化建设和社区医生更好地履行职责和学习培训的需要,特别是基于全科医学的诊疗系统的社区医生工作站概念的提出是对全科医生工作站的进一步的发展。
如何更好地设计REST API
由于REST可以降低开发的复杂度,提高系统的可伸缩性,增强系统的可扩展性,简化应用系统之间的集成,因而得到了广大开发人员的喜爱,同时得到了业界广泛的支持。比如IBM,Google等公司的很多产品都提供了REST API给开发人员;与此同时,大量的开源项目和云计算服务都提供了REST API接口。
而在最近,一些新产品的开发甚至已经几乎完全抛弃了传统的类似JSP的技术, 转而大量使用REST风格的构架设计, 即在服务器端所有商业逻辑都以REST API的方式暴露给客户端, 所有浏览器用户界面使用widget、Ajax、HTML5 等技术,用HTTP的方式与后台直接交互。
那么, 在REST API爆炸式增长的今天, 我们应该如何更好的设计我们的接口, 来提高我们的API的可用性,易用性,可维护性与可扩展性呢?本文将从以下方面与您探讨REST API设计方面的最佳实践:
如何规划资源标识结构与URI模式
如何根据应用场景提供内容协商
如何正确的使用HTTP响应代码
如何处理缓存和并发请求
如何利用数据冗余和链接元素
先决条件
如果您具有如下知识与经验,将有助于您阅读和理解本文章的内容 。
REST相关的基本知识;
HTTP协议的基本知识;
一定的Web开发经验。
REST简介
REST是英文Representational State Transfer的缩写,是近年来迅速兴起的,一种基于HTTP、URI以及XML这些现有协议与标准的,针对网络应用的设计和开发方式。它可以降低开发的复杂度,提高系统的可伸缩性。
REST的核心是可编辑的资源及其集合,用符合Atom文档标准的Feed和Entry表示。每个资源或者集合有一个惟一的URI。系统以资源为中心,构建并提供一系列的Web服务。REST的基本概念和原则包括:系统上的所有事物都被抽象为资源;每个资源对应唯一的资源标识;对资源的操作不会改变资源标识本身;所有的操作都是无状态的;等等。
在REST中,开发人员显式地使用HTTP方法,对系统资源进行创建、读取、更新和删除的操作:
使用POST方法在服务器上创建资源
使用GET方法从服务器检索某个资源或者资源集合
使用PUT方法对服务器的现有资源进行更新
使用DELETE方法删除服务器的某个资源
图 1. 用 HTTP 方法操作相册系统资源的简单范例
更好的规划你的资源标识结构与URI模式
REST 中,最基本的莫过于资源标识结构和URI模式了。更好的规划他们,是我们的API设计取得成功的最关键的一步。
首先,我们来看看基本资源类型
上文中提到,在REST构架的设计中,系统中的所有事物都被抽象为资源。
在一个文档系统中,文档、目录、注释、草稿等等,是组成系统的资源。
在一个银行系统中,客户信息、理财产品、利率信息、网点信息等等,是组成系统的资源。
在一个航空客票系统中,旅客信息、机票订单、航班信息、机场信息等等,是组成系统的资源。
这些资源,通常在系统中以“Entry”的形式出现。下面的代码样例向您展示了一个常见的“Entry”资源。
清单 1. 一个简单的Entry资源样例
以下是引用片段:
REST API 请求:
GET http://example.com/航班信息/CA827/entry
<entry
<id CA827 </id
<link href="航班信息 /CA827/entry" rel="self"/
<title type="text"CA827 </title
<published2010-08-24T02:35:40.937Z </published
<updated2010-08-24T02:35:40.937Z </updated
<ca:fromBeijing </ca:from
<ca:toChangsha </ca:to
<ca:time09:30:00 </ca:time
<ca:aircraftAB330 </ca:aircraft
<summary type="text"/
</entry
我们会注意到,这些资源,在描述了某种事物的同时,还有可能存在一定的层次结构关系。比如,文档从属于某个目录,注释从属于文档;旅客信息可以从属于机票订单,也可以从属于某个航班。
当我们的资源有这种层次关系的时候,我们不妨在URI模式的设计中,用复合的URI来帮助开发者更好的理解和设计资源。
比如, 针对一个文档的评论, 他的URI模式可以设计成如下:/文件夹/[文件夹名]/文件/[文件名]/评论/[ 评论唯一标示 ]。 这样,在构造和解析URI的过程中, 可以帮助开发者更好的理解系统,设计程序。
其次,我们来看看集合资源类型
资源,除了作为独立个体可以被访问,还可以由多个个体组合成一个集合,在系统中,通常以“feed”的形式存在。资源的集合, 可以是处于相同层次上,有相同从属关系的一组资源,比如一个文件夹下的所有文件; 也可以是根据某种条件查询出来的查询结果的资源集合,比如所有30岁以上40岁以下,拥有100万资产以上客户的名单。
下面,我们来讨论一下设计集合类型资源的REST API时需要考虑的问题。
使用过滤条件来帮助用户更准确地获取数据
我们要返回的资源集合,无论是否有相同从属关系,大部分时候都需要进行必要的过滤,提供足够的过滤参数,查询参数, 能够帮助开发者高效的,准确地获取所需要的数据。 在服务器端过滤数据通常比客户端高效,并且减少了不必要的数据传输,可以大大减少网络开销,提高执行效率。
最常见的过滤条件,是通过URL参数实现,比如/环境工程系/学生? 籍贯=北京性别=女。
很多时候,我们需要制定更加复杂的过滤条件,那么我们可以有两种选择:
首先,我们可以使用正则表达式或者服务器可以理解的语法,比如/环境工程系/学生?filter=age between (15, 18)
其次,我们还可以使用POST方法,携带一个文件来描述复杂的查询条件,文件的格式与语法通常需要在服务器端有相应的设计与定义。不过通常POST方法没有缓存机制,因此不是查询数据的首选。
使用排序来帮助客户端更好的展现数据
虽然进行客户端排序对于开发者来说是件轻而易举的事情,但是直接得到已经排序的返回结果,仍然是大部分开发者所期望的。尤其是很多时候,我们在浏览器,使用 Widget 展示结果,不适宜在客户端存储大量数据进行内存排序。
排序, 通常有2个参数,一个是用来排序的字段,一个是排序的升序降续方式。比如我们可以用支持这样的参数组合的手段,提供基本的排序能力:?sortOrder=ascsortField=age
使用分页来帮助客户端处理大量数据
由于返回的结果可能有几百几千条记录,将这些记录一次性的返回给客户端是不现实的,巨大的网络流量开销和客户端数据区的内存开销,都是我们在应用开发的时候不希望看到的,因此,如果你的集合资源有可能有大量的数据返回,请务必提供分页的功能支持。
我们通常用一个以上参数来制定一个返回结果的区域,比较常见的有下面两种:
一种常见于用固定行数的表格来展示数据,用当前处于第几页和每页返回多少行数据来确定需要的数据, 比如/所有学生?page=5pagesize=50
另外一种常见于用更加灵活的界面展示数据,用从第几行开始,一共返回多少行数据来确定需要的数据, 比如/所有学生?startIndex=27count=22
下面是一个来自IBM developerWorks的API样例,尝试请求该API,你可以看到该集合很好的支持了结果的分页与排序。同时我们从返回的信息中可以看到,每个文档Entry的URI都按照/社区库/[社区库ID]/文档/[文档ID]的复合URI的模式设计的。
清单 2. IBM developerWorks的某个社区文件库的集合资源的API
以下是引用片段:
REST API 请求:
GET https://www.ibm.com/developerworks/mydeveloperworks
/files/form/anonymous/api/communitylibrary
/0a7c97bb-6cf9-4ddb-a918-80994e7b444d/feed?
pageSize=5page=1sK=modifiedsO=dsc
最后,我们来讨论一些特殊资源类型
理想的REST世界,一切事物都抽象为资源,一切操作都抽象为增删改查。然而,所有事物与操作都可以很容易的按照这个规则作抽象吗?让我们看看这个例子:
检入和检出一个文档----这个时候,我们要处理的资源是一个文档,然而增删改查似乎都无法与“检入检出”这个动作进行对应。当然,我们可以在文档资源中,设计一个检入检出状态的元素,通过编辑文档资源来实现。但是,这种设计从自然语义上看,并不是很贴切;并且增加了资源编辑操作的复杂度。
如果我们来定义一个新的集合----“我检出的文档”,用创建一个集合资源来对应检出(创建一个文档锁),用删除一个集合资源来对应检入(删除一个文档锁), 是不是逻辑上可以变得更加清楚?
在REST这个以名词为核心的构架结构中,当你遇到一些动词特性比较强的操作,而又很难用原始资源的增删改查来匹配的时候,不妨换个思路, 通过引入新的逻辑资源集合的方式, 来进行API的设计与规划。
理解和使用内容协商
我们的开发者在发送一个REST API请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式。
比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言。又比如,当我使用Java编程的时候,我希望得到ATOM格式的返回结果,而当我使用JavaScript编程的时候,我希望得到Json格式的返回结果。
因此,我们在设计REST API的时候,应该提供完备的内容协商能力。
使用URL参数进行内容协商
最容易想到的自然是通过URL参数进行控制,我们经常看到形如/航班号/entry? format=JSON这样的URL。这种方式的优势就是简单灵活, 你可以通过任何 URL 参数来组合你的输出格式。
下面是一个来自IBM developerWorks的API样例,尝试请求该API,你可以看到该集合是如何支持不同的输出格式请求的。
清单 3. IBM developerWorks的文件服务标签云的API
以下是引用片段:
REST API请求,要求返回XML格式数据:
GET https://www.ibm.com/developerworks/mydeveloperworks
/files/form/anonymous/api/tags/feed?format=xml
scope=documentpageSize=30sK=cloudsO=dsc
REST API请求,要求返回JSON格式数据:
GET https://www.ibm.com/developerworks/mydeveloperworks
/files/form/anonymous/api/tags/feed?format=json
scope=documentpageSize=30sK=cloudsO=dsc
使用Accept头进行内容协商
使用URL参数,简单灵活,但是也由此带来了设计上的随意和不标准。并且,过多的参数会导致URL的可读性变差,更有甚者,可能会导致URL过长,超出规范,API请求无法执行。
更为标准的内容协商方式是使用HTTP头。我们通常使用Accept来设置我们接受的返回结果的内容格式,用Accept-Charset来设置字符集,用Accept-Encoding来设置数据传输格式,用Accept-Language来设置语言。
使用URI模式进行内容协商
还有一种模式,就是将协商设置直接作为URI的一部分,将不同的返回视为不同的资源,比如/航班号/json来返回JSON格式的结果,用/航班号/atom来返回ATOM格式的结果。
正确的使用HTTP响应代码
作为API的设计者,正确的将API执行结果和失败原因用清晰简洁的方式传达给客户程序是十分关键的一步。 我们确实可以在HTTP的相应内容中描述是否成功,如果出错是因为什么, 然而, 这就意味着用户需要进行内容解析,才知道执行结果和错误原因。因此,HTTP响应代码可以保证客户端在第一时间用最高效的方式获知API运行结果,并采取相应动作。
转载,仅供参考,祝你愉快,满意请采纳。
关于社区系统接口设计和社区系统开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
社区系统接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于社区系统开发、社区系统接口设计的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~