[RESTful web services读书笔记] 接口设计中维持XML和JSON表述的兼容性
分布式的客户端/服务器环境中必然涉及到变更管理,如何维护系统的可扩展性和兼容性?
问题描述:需求是持续变化的,在通常的接口设计中,如何保证服务端XML和JSON表述的变更与现有的客户端保持兼容
解决方案:保持原有的XMl和JSON数据分层结构整体不发生变化,确保客户端按照之前的调用方法可以继续工作
服务端需要把新增的数据元素设计为可选的,以此保持与客户端的兼容性,相对于URI来说,就是URI中添加了新参数时,要继续服务于现有参数,并将新参数视为可选
不要修改删除原有的响应正文表述的数据域
PS:
REST架构风格的最主要驱动是分布性和扩展性。RESTful HTTP接口的设计是由网络因素而非编程语言的绑定驱动的
参考:RESTful web services Cookbook 中文版
ps 后记
这篇文章提到了兼容性设计的重点,对原有设计的扩充和维护是一件很困难的事,因为原有系统还在运行,所以你只能做扩充,不能做改造,改造的风险巨大且未知
这样一来代码结构,数据库设计,等都会出现混乱和复杂。比如代码风格不统一,随意的增加和补充,数据库字段冗余,很多字段不知道是否在实际业务中还在使用,是否在维护
2013-02-02 补充
转载于:https://www.cnblogs.com/needrunning/archive/2012/12/09/2810431.html
[RESTful web services读书笔记] 接口设计中维持XML和JSON表述的兼容性相关推荐
- cxf开发Restful Web Services
一.restful web services rest全称是Representation State Transfer(表述性状态转移).它是一种软件架构风格,只是提供了一组设计原则和约束条件.在re ...
- RESTful Web Services初探
RESTful Web Services初探 作者:杜刚 近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题.很多网站和应用提供的API,都是基于RESTf ...
- 500 lines web craw 读书笔记
500 lines web craw 读书笔记 网络io的几个阶段 本文三部分 1. 阻塞socket 2. 非阻塞socket /Async 3. selec.epoll.kqueue 轮询 4 回 ...
- JAX-RS(Java API for RESTful Web Services)常用注解
为什么80%的码农都做不了架构师?>>> 概述 JAX-RS(Java API for RESTful Web Services)是Java 提供用于开发RESTful Web ...
- RESTful Web Services in Spring 3(下)转载
上一篇我主要发了RESTful Web Services in Spring 3的服务端代码,这里我准备写客户端的代码. 上篇得连接地址为:http://yangjizhong.iteye.com/b ...
- 使用Hibernate-Validator优雅的验证RESTful Web Services的参数
何为Hibernate-Validator 在RESTful Web Services的接口服务中,会有各种各样的入参,我们不可能完全不做任何校验就直接进入到业务处理的环节,通常我们会有一个基础的数据 ...
- 读书笔记 | 自动驾驶中的雷达信号处理(第2章 雷达方程)
本文编辑:调皮哥的小助理 2.1 介绍 本文主要介绍雷达方程,这有助于理解传播损耗对雷达发射信号的影响.本期的内容都很简单,通俗易懂,即使有存在不易理解的,我会额外加以注释,总而言之,会站在一个初学者 ...
- Jboss RestEasy构建简单的RESTful Web Services示例(1)
2019独角兽企业重金招聘Python工程师标准>>> 项目上要用到webservice,鉴于现在restful webservice比较流行,打算用restful来建立webser ...
- 接口设计中,如何封装对json格式的数据签名
目录 一.背景介绍 二.遇到的问题 三.解决方案 1.设计一个HttpServletRequestWrapper 2.设计一个filter 四.其他辅助设计 1.定义一个注解 2.定义一个拦截器 一. ...
- 软件接口设计中的版本兼容问题处理
最近在项目中经常遇到软件版本升级后不兼容旧版本的问题,本文根据以往经验,从软件接口设计.实现等方面整理了一些兼容性设计思路. 1. 优化设计 1)接口返回值的定义 有的人喜欢用0.1等较小的数字标 ...
最新文章
- fastdfs安装_用asp.net core结合fastdfs打造分布式文件存储系统
- 2018中国互联网企业100强揭晓!阿里巴巴名列榜首
- 复制多级文件夹【应用】
- 吴恩达机器学习练习2:Regularized logistic regression
- 使用阿里云容器监控服务与第三方监控框架集成搭建自己的容器看板
- 美团HD(7)-添加取消搜索按钮
- 无法将 flash.display::BitmapData 转换为 flash.display.Bitmap
- LINUX矩阵键盘简单介绍,矩阵键盘程序流程图的详细介绍
- 十分简明易懂的FFT(快速傅里叶变换)
- 纯php实现中秋博饼游戏(2):掷骰子并输出结果
- 钉钉后台配置微应用_将配置文件链接应用于微格式
- Linksys WRT54G 无线路由器刷机DD-WRT成功
- Linux服务篇之FTP服务及工具
- VUE 中的搜索关键字
- 解决Echarts的toolbox只显示英文的问题
- 基于LiFi可见光通信技术的研究及应用转化调查
- 【5万字】文件增量复制【OS库、Tkinter库等】
- 微信小程序 版本更新
- win7-64bit 安装Python3.5
- 《鸿图之下》中的武将是如何做美术设计的?
热门文章
- 根据眼睛焦点分级绘制3D效果的设想
- WINDOWS下,找包含特殊字串的文件的解决办法
- 基于h5的跳一跳游戏的开发与实现_武汉专业开发自助零售系统报价,专业软件小程序定制平台_便企网...
- java窗口布局_Java窗口(JFrame)从零开始(4)——流布局+边界布局+网格布局
- mysql 定时器_MySQL定时器开启、调用实现代码
- ajax 怎么添加,添加功能(Ajax版)
- vs 执行单个文件,如cpp
- mysql test run_MySQL自动测试框架
- php 大excel,如何用php生成一个大的Excel文件?
- Android Studio 通过一个登录功能介绍SQLite数据库的使用