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

万维网网站手机微网站怎么做

万维网网站,手机微网站怎么做,手机网站建设 cms,网页内容1、简述 Content Negotiation#xff08;内容协商#xff09; 是 RESTful 服务的重要特性#xff0c;允许客户端和服务器根据请求的不同特性动态选择适合的响应格式。它是一种在 HTTP 协议中实现的机制#xff0c;通过它#xff0c;服务器能够根据客户端需求返回适合的内…1、简述 Content Negotiation内容协商 是 RESTful 服务的重要特性允许客户端和服务器根据请求的不同特性动态选择适合的响应格式。它是一种在 HTTP 协议中实现的机制通过它服务器能够根据客户端需求返回适合的内容类型如 JSON、XML、HTML。 本文将介绍 Content Negotiation 的原理、实现方式并通过详细示例演示其在 Spring Boot 中的实际应用。 2、原理 Content Negotiation 的核心在于客户端通过 HTTP 请求头中的 Accept、Content-Type 等字段告知服务器它支持的内容格式而服务器根据这些信息返回匹配的内容。以下是主要的 HTTP 头字段 Accept指定客户端希望接受的内容类型。例如 Accept: application/json表示客户端希望接收到 JSON 格式的响应。 Content-Type指定请求体的内容格式如 POST 请求的 JSON 数据。 Accept-Language指定客户端支持的语言。 Content Negotiation 有以下三种常见实现方式 HTTP Header-Based Negotiation基于请求头的协商 客户端通过 Accept 头告知服务器期望的响应类型。 示例Accept: application/xml。 URL Path-Based Negotiation基于 URL 路径的协商 通过扩展名直接指定期望的响应类型。 示例/api/resource.json。 Query Parameter-Based Negotiation基于查询参数的协商 客户端通过查询参数指定期望的响应类型。 示例/api/resource?formatjson。 3、Content Negotiation 实现 Spring Boot 提供了对 Content Negotiation 的内置支持可以轻松实现多种响应格式。 3.1 添加必要的依赖 确保你的项目中已经包含以下依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependencydependencygroupIdcom.fasterxml.jackson.dataformat/groupIdartifactIdjackson-dataformat-xml/artifactId /dependency3.2 配置 Content Negotiation 在 Spring Boot 中通过 ContentNegotiationConfigurer 配置支持的内容协商方式 package com.example.springbootclient.config;import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration public class WebConfig implements WebMvcConfigurer {Overridepublic void configureContentNegotiation(ContentNegotiationConfigurer configurer) {configurer// 支持 URL 后缀形式如 .json 或 .xml.favorPathExtension(true)// 支持查询参数如 ?formatjson 或 ?formatxml.favorParameter(true).parameterName(format)// 如果未指定则根据请求头返回内容类型.ignoreAcceptHeader(false).useRegisteredExtensionsOnly(false)// 默认返回 JSON.defaultContentType(MediaType.APPLICATION_JSON)// 注册媒体类型.mediaType(json, MediaType.APPLICATION_JSON).mediaType(xml, MediaType.APPLICATION_XML);} }3.3 创建示例控制器 创建一个简单的 REST 控制器用于返回多种格式的数据 package com.example.springbootclient.controller;import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.HashMap; import java.util.Map;RestController RequestMapping(/api) public class ContentNegotiationController {GetMapping(value /resource)public ResponseEntityObject getResource() {MapString, String data new HashMap();data.put(id, 1);data.put(name, Content Negotiation Example);return ResponseEntity.ok(data);}GetMapping(value /resource.{format}, produces {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})public ResponseEntityObject getFormat() {MapString, String data new HashMap();data.put(id, 1);data.put(name, Content Negotiation Example);return ResponseEntity.ok(data);} }4、详细样例 以下是几种 Content Negotiation 的请求和响应示例 4.1 基于 HTTP 请求头 请求 GET /api/resource HTTP/1.1 Host: localhost:8080 Accept: application/json响应 {id: 1,name: Content Negotiation Example }如果请求头为 Accept: application/xml响应为 HashMapnameContent Negotiation Example/nameid1/id /HashMap4.2 基于 URL 路径扩展名 请求 GET /api/resource.json HTTP/1.1 Host: localhost:8080响应 {id: 1,name: Content Negotiation Example }请求 GET /api/resource.xml HTTP/1.1 Host: localhost:8080响应 HashMapnameContent Negotiation Example/nameid1/id /HashMap4.3 基于查询参数 请求 GET /api/resource?formatjson HTTP/1.1 Host: localhost:8080响应 {id: 1,name: Content Negotiation Example }请求 GET /api/resource?formatxml HTTP/1.1 Host: localhost:8080响应 HashMapnameContent Negotiation Example/nameid1/id /HashMap5、Content Negotiation 的优缺点 5.1 优点 客户端可以灵活选择所需的内容格式。支持多种协商方式适用性广。降低了为不同格式创建独立 API 的复杂性。 5.2 缺点 配置较为复杂可能导致意外的行为。扩展名协商可能不符合 RESTful API 的最佳实践。对 Accept 头的支持可能不一致。 6、总结 Content Negotiation 是 RESTful API 中的重要功能能够为客户端提供更好的灵活性。在 Spring Boot 中Content Negotiation 的实现非常灵活支持多种协商方式。通过合理的配置和设计可以实现更加优雅和高效的服务接口。希望本文对你理解 Content Negotiation 的核心原理和实现有所帮助
http://www.hkea.cn/news/14565747/

相关文章:

  • 网站建设 中关村用什么l软件做网站了
  • 购车网站设计六安网站
  • 哈尔滨seo网站管理pc网站开发语言
  • 国外毕业设计网站做网站有哪些语言
  • 怎么做建设网站专业模板建站提供商
  • 网站安全检测服务重庆亮哥做网站
  • 网站的漂浮广告怎么做app营销推广方式
  • 安徽省合肥市建设局网站做酷炫网站能卖钱吗
  • 企业网站目的海南最新政策
  • 东莞 手机网站制作合肥网站建设网站推广津学院
  • 苏州手机社区网站建设在什么网站上做精帖
  • 做网站需要那些编程语言专业做化学招聘的网站有哪些
  • 电商平台网站运营方案如何建设个人网站凡科怎么样
  • 百度验证网站有什么用国内十大游戏公司排名
  • 怎样建设直播网站seo职位
  • 成年男女做羞羞视频网站网页设计师的工作时间
  • 电子商务网站建设试题二wordpress 嵌入字体
  • 做网站属于It行业吗女生千万别学市场营销
  • 橫山区建设局网站中信建设有限责任公司 联系方式
  • 网站可以做系统还原吗高德地图在海外能用吗
  • 网站模块建设招聘网站开发的目的与意义
  • 东莞做好网络推广厦门百度快照优化排名
  • 创意广告设计网站微信怎么搞小程序
  • 重庆微信网站制作价格山东省南水北调建设管理局网站
  • 网站繁体jswordpress管理员评论在哪儿设置
  • 青岛专业建设网站常州建设企业网站
  • 网站建设的7个基本流程凤岗建设网站
  • 园林景观中企动力提供网站建设wordpress自适应淘宝客主题
  • 东莞哪里的网站建设效果好如何制作网站首页
  • 网站空间怎么使用外卖小程序怎么制作