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

版面设计素材网站关键词优化内容

版面设计素材网站,关键词优化内容,wordpress登入访问,南宁网站建设哪家公rest spring这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第五篇。 上一篇文章介绍了RESTful服务HATEOAS的可发现性的概念#xff0c;然后介绍了一些由测试驱动的实际方案。 本文将重点介绍可发现性的实际实现以及… rest spring 这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第五篇。 上一篇文章介绍了RESTful服务HATEOAS的可发现性的概念然后介绍了一些由测试驱动的实际方案。 本文将重点介绍可发现性的实际实现以及使用Spring 3.1在REST服务中满足HATEOAS约束的情况。 通过事件使可发现性脱钩 可发现性作为Web层的一个单独方面或关注点 应与处理HTTP请求的控制器分离。 为此Controller将触发所有需要对HTTP响应进行其他操作的操作的事件 RequestMapping( value admin/foo/{id},method RequestMethod.GET ) ResponseBody public Foo get( PathVariable( id ) Long id, HttpServletRequest request, HttpServletResponse response ){Foo resourceById RestPreconditions.checkNotNull( this.service.getById( id ) );this.eventPublisher.publishEvent( new SingleResourceRetrieved( this, request, response ) );return resourceById; } RequestMapping( value admin/foo,method RequestMethod.POST ) ResponseStatus( HttpStatus.CREATED ) public void create( RequestBody Foo resource, HttpServletRequest request, HttpServletResponse response ){RestPreconditions.checkNotNullFromRequest( resource );Long idOfCreatedResource this.service.create( resource );this.eventPublisher.publishEvent( new ResourceCreated( this, request, response, idOfCreatedResource ) ); } 然后可以由任意数量的解耦侦听器来处理这些事件每个侦听器都专注于其自身的特定情况并且朝满足整体HATEOAS约束的方向发展。 同样侦听器应该是调用堆栈中的最后一个对象不需要直接访问它们 因此它们不是公开的。 使新创建资源的URI可被发现 如前一篇文章所述创建新资源的操作应在响应的Location HTTP标头中返回该资源的URI。 Component class ResourceCreatedDiscoverabilityListener implements ApplicationListener ResourceCreated {Overridepublic void onApplicationEvent( ResourceCreated resourceCreatedEvent ){Preconditions.checkNotNull( resourceCreatedEvent );HttpServletRequest request resourceCreatedEvent.getRequest();HttpServletResponse response resourceCreatedEvent.getResponse();long idOfNewResource resourceCreatedEvent.getIdOfNewResource();this.addLinkHeaderOnResourceCreation( request, response, idOfNewResource );}void addLinkHeaderOnResourceCreation( HttpServletRequest request, HttpServletResponse response, long idOfNewResource ){String requestUrl request.getRequestURL().toString();URI uri new UriTemplate( {requestUrl}/{idOfNewResource} ).expand( requestUrl, idOfNewResource );response.setHeader( HttpHeaders.LOCATION, uri.toASCIIString() );} } 不幸的是即使在Spring 3.1中处理低级别的请求和响应对象也是不可避免的因为仍在努力提供用于指定Location的一流支持。 获取单一资源 检索单个资源应允许客户端发现URI以获取该特定类型的所有资源 Component class SingleResourceRetrievedDiscoverabilityListener implements ApplicationListener SingleResourceRetrieved {Overridepublic void onApplicationEvent( SingleResourceRetrieved resourceRetrievedEvent ){Preconditions.checkNotNull( resourceRetrievedEvent );HttpServletRequest request resourceRetrievedEvent.getRequest();HttpServletResponse response resourceRetrievedEvent.getResponse();this.addLinkHeaderOnSingleResourceRetrieval( request, response );}void addLinkHeaderOnSingleResourceRetrieval( HttpServletRequest request, HttpServletResponse response ){StringBuffer requestURL request.getRequestURL();int positionOfLastSlash requestURL.lastIndexOf( / );String uriForResourceCreation requestURL.substring( 0, positionOfLastSlash );String linkHeaderValue RESTURLUtil.createLinkHeader( uriForResourceCreation, collection );response.addHeader( LINK_HEADER, linkHeaderValue );} } 请注意链接关系的语义使用了“ 集合 ”关系类型该类型以多种微格式指定和使用但尚未标准化。 出于可发现性的目的 Link头是最常用的HTTP头之一。 因此需要一些简单的实用程序来简化在服务器上创建其值并避免引入第三方库的情况。 从根本上发现 根是RESTful Web服务中的入口点–它是客户端首次使用API​​时与之联系的对象。 如果要始终考虑并实施HATEOAS约束那么这是一个起点。 到目前为止必须从根目录中发现系统的大多数主要URI这一事实不足为奇。 这是从根本上提供可发现性的示例控制器方法 RequestMapping( value admin,method RequestMethod.GET ) ResponseStatus( value HttpStatus.NO_CONTENT ) public void adminRoot( HttpServletRequest request, final response ){String rootUri request.getRequestURL().toString();URI fooUri new UriTemplate( {rootUri}/{resource} ).expand( rootUri, foo );String linkToFoo RESTURIUtil.createLinkHeader( fooUri.toASCIIString(), REL_COLLECTION );response.addHeader( HttpConstants.LINK_HEADER, linkToFoo ); } 当然这是该概念的说明可以在该系列的概念证明RESTful服务的上下文中阅读。 在更复杂的系统中会有更多的链接每个链接都有自己的语义这些语义由链接关系的类型定义。 可发现性与更改URI无关 与可发现性相关的最常见陷阱之一是一种误解即由于URI现在是可发现的因此它们可能会发生变化 。 但是事实并非如此这是有充分理由的首先这不是Web的工作方式–客户将URI加为书签并希望它们将来能够正常工作。 其次客户端不必浏览API就可以直接到达某个状态。 取而代之的是RESTful Web服务的所有URI都应被视为即兴URI 而URI 不变 。 相反可以使用API​​的版本控制来解决URI重组的问题。 可发现性警告 正如前几篇文章中的某些讨论所指出的那样可发现性的首要目标是最大限度地减少文档使用或不使用文档并让客户通过获得的响应来学习和理解如何使用API​​。 实际上这不应该被视为遥不可及的理想-这是我们如何使用每个新网页的方式- 没有任何文档 。 因此如果该概念在REST上下文中存在更多问题那么它必须是技术实施问题而不是是否可能的问题。 话虽这么说从技术上讲我们离一个完整的解决方案还差得很远–规范和框架支持仍在不断发展因此可能必须做出一些折衷。 但是这些都是妥协应视为妥协。 结论 本文介绍了在具有Spring MVC的RESTful服务的上下文中实现可发现性的某些特征并从根本上涉及了可发现性的概念。 在接下来的文章中我将重点介绍自定义链接关系和Atom发布协议。 同时检查github项目 。 参考我们的JCG合作伙伴 Eugen Paraschiv在baeldung博客上的第5部分 Spring的REST服务发现性 。 相关文章 使用Spring 3.1和基于Java的配置引导Web应用程序第1部分 使用Spring 3.1和基于Java的配置构建RESTful Web服务第2部分 使用Spring Security 3.1保护RESTful Web服务第3部分 RESTful Web服务可发现性第4部分 使用Spring Security 3.1的RESTful服务进行基本身份验证和摘要身份验证第6部分 SpringQuartz集成自定义注释 Spring MVC拦截器示例 在运行时交换出Spring Bean配置 翻译自: https://www.javacodegeeks.com/2011/12/rest-service-discoverability-with.htmlrest spring
http://www.pierceye.com/news/856051/

相关文章:

  • wordpress防抓取wordpress seo h1标签
  • 产品宣传网站模板完整个人网站html
  • 多用户商城网站开发seo搜索是什么
  • 永川网站制作网页设计中好的网站
  • 淮南本地网从化网站建设优化
  • 必要是什么网站山东网站seo
  • 汕头网站快速优化排名wordpress安装流程图
  • 郑州视频网站建设大概多少钱赶集网2022年最新招聘
  • 购物网站怎么做优化wordpress 暖岛 主题
  • 帝国cms如何做电影网站广告设计要学哪些软件
  • 企业做网站的意义网站建设的知识
  • 重庆荣昌网站建设价格内网网站建设流程
  • 专业网站建设哪家好网站开发英语英语
  • 亿恩 网站备案做养生网站需要什么资质
  • 镇江网站建设案例洛阳网站建站
  • 网站建设如何把代码沈阳网站制作
  • 微网站自己怎么做的模版网站和语言网站
  • 做平台是做网站和微信小程序的好别京津冀协同发展国家战略
  • 北京怎样做企业网站电脑网页开发
  • 企业网站建设运营方案Wordpress hover插件
  • 做暧暖ox免费网站微信开店小程序怎么弄
  • 网站建站网站网站维护动画设计属于什么大类
  • 深圳宝安上市公司网站建设报价制作网站去哪家好
  • 沈阳做网站客户多吗网站地图抓取
  • 做网站比较专业的公司微信商城在哪里找
  • 网站建设开发的流程网站标题title怎么写
  • 网络营销的优势海宁网站怎么做seo
  • wordpress 英文主题南宁网站排名优化公司
  • 行业网站建设方案有专门做电商网站的CMS吗
  • 网站备案 快递公司变更流程