当前位置: 首页 > news >正文

寿光网站建设推广上海比较有名的景观设计公司

寿光网站建设推广,上海比较有名的景观设计公司,新手网站,产品设计公司文章目录 一、命名规范1.1 接口命名1.2 变量命名 二、接收参数规范2.1 请求体#xff08;Body#xff09;2.2 查询参数#xff08;Query Parameters#xff09; 三、参数检验四、接收方式规范五、异常类处理六、统一返回格式的定义七、API接口的幂等性#xff08;Idempote… 文章目录 一、命名规范1.1 接口命名1.2 变量命名 二、接收参数规范2.1 请求体Body2.2 查询参数Query Parameters 三、参数检验四、接收方式规范五、异常类处理六、统一返回格式的定义七、API接口的幂等性Idempotence小结 在软件开发领域尤其是 Java后端开发中API接口的设计与开发是连接前端与后端服务的桥梁其质量和规范性直接影响到系统的可维护性、可扩展性以及用户体验。一个优秀的 API接口设计应当遵循一定的规范以确保接口的一致性、安全性和易用性。本文将从命名规范、接收参数规范、参数检验、接收方式规范、异常类处理、统一返回格式、幂等性等方面详细介绍Java后端API接口的开发规范并通过实际代码示例加以说明。 一、命名规范 1.1 接口命名 RESTful风格遵循RESTful原则使用HTTP方法GET、POST、PUT、DELETE等来表明对资源的操作。接口URL应直观反映资源及其操作如/users获取用户列表/users/{id}获取指定ID的用户。动词名词在URL中尽量避免使用动词而是通过HTTP方法表示操作。但在特定场景下如复杂查询可在URL中加入动词描述性的查询参数如/users/search。驼峰命名接口名、资源名采用小写驼峰命名法lowerCamelCase如getUserById。 1.2 变量命名 属性命名Java中属性名使用小写驼峰命名法如userId、userName。常量命名全部大写单词间用下划线分隔如MAX_USERS。 二、接收参数规范 2.1 请求体Body 对于POST、PUT等需要修改服务器状态的操作推荐使用JSON格式作为请求体。 请求体中的字段应与数据库表或业务对象属性对应确保数据一致性。 { userId: 1, userName: JohnDoe, email: johndoeexample.com }2.2 查询参数Query Parameters 对于GET请求使用查询参数传递非敏感信息如分页参数、排序条件等。 查询参数名同样采用小写驼峰命名法如page1size10。 三、参数检验 前端校验与后端校验结合虽然前端应进行基本的校验但后端必须实现全面的校验逻辑以防止恶意请求。 使用校验框架如Hibernate Validator通过注解方式简化校验逻辑。 public class UserDTO { NotNull(message 用户ID不能为空) private Long userId; NotBlank(message 用户名不能为空) Size(min 3, max 20, message 用户名长度必须在3到20个字符之间) private String userName; // 其他字段和校验注解... }四、接收方式规范 根据内容类型选择接收方式对于application/json类型的数据使用RequestBody注解接收请求体对于application/x-www-form-urlencoded或multipart/form-data则可能需要手动解析或使用RequestParam等注解。 统一使用注解尽可能利用Spring MVC提供的注解如PathVariable、RequestParam、RequestBody来简化代码和增强可读性。 五、异常类处理 自定义异常类根据项目需求定义一系列自定义异常类如BusinessException、SystemException等以区分业务异常和系统异常。 全局异常处理使用ControllerAdvice或RestControllerAdvice注解的类来全局捕获并处理异常统一返回格式。 RestControllerAdvice public class GlobalExceptionHandler { ExceptionHandler(value BusinessException.class) public ResponseEntityObject handleBusinessException(BusinessException ex) { // 构造返回体包含错误码、错误信息等 MapString, Object body new HashMap(); body.put(code, ex.getCode()); body.put(message, ex.getMessage()); return new ResponseEntity(body, HttpStatus.BAD_REQUEST); } // 其他异常处理方法... }六、统一返回格式的定义 统一返回格式通常包含以下几个关键部分 状态码Code表示请求处理的结果状态如成功、失败、未授权等。状态码可以是HTTP状态码也可以是自定义的业务状态码。自定义状态码可以更加精细地描述业务逻辑的错误类型。消息Message与状态码对应的文本描述用于给调用者提供更多关于请求结果的上下文信息。数据Data请求成功时返回的具体数据。如果请求失败这个部分可能是空的、null或者包含一些错误信息。时间戳Timestamp可选记录响应生成的时间有助于客户端进行缓存控制或日志记录。其他元数据可选如分页信息当前页码、每页数量、总记录数等、请求ID等根据具体需求决定是否需要包含。 示例 以下是一个统一返回格式的JSON示例 { code: 200, // 自定义或HTTP状态码 message: 操作成功, data: { // 请求成功时返回的数据 id: 1, name: John Doe, email: johndoeexample.com }, timestamp: 2023-10-01T12:00:00Z, // 可选 requestId: abc123 // 可选用于追踪请求 }如果请求失败响应可能会是这样的 { code: 404, // 自定义或HTTP状态码 message: 未找到用户, data: null, // 或包含错误信息 timestamp: 2023-10-01T12:00:00Z, // 可选 requestId: def456 // 可选 }在实现统一返回格式时可以定义一个或多个基础响应类如前面提到的BaseResponse类并在控制器中使用这些类来构造响应。此外可以使用AOP面向切面编程来全局拦截响应自动包装成统一格式以减少在每个控制器方法中重复编写相同代码的需要。 七、API接口的幂等性Idempotence API接口的幂等性Idempotence是HTTP协议中的一个重要概念尤其在RESTful API设计中尤为重要。幂等性指的是一个操作无论执行多少次其结果都相同且不会对系统状态产生副作用除了那些因为副作用而特意设计的操作如日志记录。 在API接口设计中幂等性主要关注于HTTP方法的使用以及接口设计本身如何保证操作的唯一性和结果的一致性。 HTTP方法与幂等性 HTTP协议定义了多种方法每种方法都有其特定的语义和幂等性属性 GET幂等方法。用于请求资源不会对服务器上的资源进行修改因此无论调用多少次结果都是相同的。POST非幂等方法。用于提交数据给服务器处理每次调用都可能产生不同的结果例如创建新的资源。PUT幂等方法在RESTful原则下。用于更新资源如果多次使用相同的请求体对同一资源进行PUT操作那么资源的状态应该是相同的。但请注意实际实现中可能存在差异因为服务器可能根据请求的具体内容来决定是否更新资源。DELETE幂等方法在大多数情况下。用于删除资源如果资源已经被删除那么再次执行DELETE操作通常不会有任何影响尽管有些服务器可能会返回不同的状态码来指示资源是否已存在。PATCH非幂等方法。用于对资源进行部分修改由于每次修改的内容可能不同因此不是幂等的。 实现API接口的幂等性 要在API接口中实现幂等性可以考虑以下几种策略 使用幂等性HTTP方法优先选择GET、PUT和DELETE方法来设计API接口因为它们更容易实现幂等性。唯一标识符对于非幂等的方法如POST可以通过在请求中包含唯一标识符如请求ID、令牌等来确保操作的幂等性。服务器可以检查这个标识符如果之前已经处理过相同的请求则可以直接返回之前的结果而不是再次执行操作。状态检查在执行操作之前先检查资源的当前状态。如果资源已经处于期望的状态则可以直接返回成功响应而无需执行任何操作。乐观锁在更新资源时使用版本号或时间戳等乐观锁机制来确保操作的幂等性。如果资源的当前版本与请求中指定的版本不匹配则拒绝更新请求。去重队列将请求发送到去重队列中队列在发送请求到实际处理服务之前会检查请求是否已经处理过。 注意事项 幂等性并不意味着操作没有副作用。例如GET请求可能会记录日志或更新缓存但这些副作用不会改变资源的核心状态。 在设计API接口时应明确指出哪些操作是幂等的并在文档中说明这一点。 幂等性的实现可能需要额外的开销如检查请求ID、维护版本号等。因此在设计API接口时应根据实际需求权衡幂等性的必要性和实现的复杂性。 小结 通过遵循上述Java后端API接口开发规范可以显著提升代码的可读性、可维护性和安全性。命名规范、接收参数规范、参数检验、接收方式规范、异常类处理以及统一返回格式等实践不仅有助于团队成员之间的协作也为前端开发者提供了清晰、一致的接口文档。此外安全性考虑也是不可忽视的一环它直接关系到系统的稳定性和用户数据的安全。
http://www.w-s-a.com/news/700547/

相关文章:

  • .net 建网站网站网站做员工犯法吗
  • 电子商务网站建设说课稿棕色网站设计
  • 怎么做律所的官方网站红塔网站制作
  • 装一网装修平台官网惠州seo按天付费
  • 湖南建设监理报名网站东莞模块网站建设方案
  • 网站建设小组个人主页html源码
  • 响应式网站检测工具营销公司业务范围
  • 网站源码如何安装做游戏课程网站
  • 选服务好的网站建设亚洲砖码砖专区2022
  • 网站快速查找wordpress 悬停 图片 文字
  • 网站续费 多久想自己做网站该学些什么
  • 可以自己做网站wordpress英文写作插件
  • 国外可以做会员网站的网站怎么查百度竞价关键词价格
  • 新站网站建设亚马逊关键词
  • 电商网站前端架构设计上海市建设工程安全生产协会网站
  • 东莞企业免费模版网站建设一般网站维护要多久
  • 著名建筑设计网站常州制作网站价格
  • 食品营销型网站广东省广州市白云区
  • 如何做网站哪个站推广描述对于营销型网站建设很重要飘红效果更佳
  • 济阳做网站公司99企业邮箱888
  • 国贸做网站的公司能接做网站的活的网站
  • 淮南建设厅网站上杭县建设局网站
  • 东莞做网站公司首选!西安注册公司费用
  • 做网站包括什么卖水果网站模板
  • 扬州网站建设外包wordpress 文章评分
  • 网站建设网站多少钱公司名字大全列表
  • 设计企业网站内容wordpress 投稿者 权限
  • seo网站推广免费价格低的成语
  • 做网站建设销售辛苦吗专题页是什么
  • 做网站的软件名字全拼wordpress可以上传文件吗