我认为,GraphQL 将改变世界。将来,你可以使用 GraphQL 查询世界上的任何系统。我在创造这样的未来。那么我为什么要对使用 GraphQL 进行辩驳呢?我个人最讨厌的是,社区一直在宣传 GraphQL 的好处,而这些好处却非常普通,并且与 GraphQL 实际上没有任何关系。如果我们想推广采用,那么我们应该诚实,应该摘掉有色眼镜。这篇文章是对 Kyle Schrade 的文章“为什么使用 GraphQL”的回应。这并不是批评。这篇文章是一个很好的讨论基础,因为它代表了我在社区中经常听到的观点。如果你读了整篇文章,当然这会花一些时间,你就会完全理解,为什么我认为 Kyle 的文章应该改名为“为什么使用 Apollo”。
在邮件列表和讨论区中有很多与REST和Web API相关的讨论,下面仅是我个人对这些问题的一些见解,并没有绝对的真理,InnoQ的首席顾问Oliver Wolf在GOTO Berlin大会上开始自己的演讲“Web API设计原则”时如是说。 不要考虑端点。SOAP有一个单独入口点的外观。相比之下Web有很多入口点,它们建立在关系上,彼此之间相互连接,并且以超媒体作为关键要素。为了不让你的API成为一个只有一种接入方式的黑洞,你应该使用超媒体控制按照对听众有意义的表现方式去链接你的资源。 不要在API中暴露领
Entity tags (ETags) are a mechanism that web servers and browsers use to determine whether the component in the browser's cache matches the one on the origin server. (An “entity” is another word a “component”: images, scripts, stylesheets, etc.) ETags were added to provide a mechanism for validating entities that is more flexible than the last-modified date. An ETag is a string that uniquely identifies a specific version of a component. The only format constraints are that the string be quoted. The origin server specifies the component's ETag using the ETag response header.
毕竟对于前端来说,优化是躲不开的主题。在看200(cache)和304区别的时候,翻到了雅虎这边归纳出来的准则,虽然是十多年前的东西了吧,但是还是具有参考价值的,因此在原文基础上我进行了一些归纳翻译。
本期节目请来了一位使用 Emacs 近十年的资深用户陈斌[1],他是著名文章《一年成为 Emacs 高手》[2]的作者,同时也是一位拥有近二十年软件开发经验的前辈。
说实话,以上的十四条,有些是我没看懂的,例如Expires Header和配置 ETags,先记录在这里,其实依照我对Web前端开发的理解,也总结出一些优化原则,也可能与上面的有些重复,但可能会更好理解一些
Kubernetes可以不侵入应用层,在容器层解决问题,比如K8S Service就具有服务发现、负载均衡的能力,HPA具有动态扩容的能力。随着K8S的快速发展,云原生的概念,也就越来越深入人心,那如何利用好K8S提供的基座能力,遴选公务员将更多的分布式能力下沉,让应用开发回归业务呢?其中Service Mesh提出的Sidecar模式,就很好的解决了微服务架构中网络通信的问题。Sidecar主要就是用来处理诸如服务发现、负载均衡、请求熔断等一系列非业务需求,应用在部署时动态插入Sidecar,服务间的通信通过Sidecar进行代理,以完成对服务间网络通信的接管。
send_file: send_file( filename_or_fp, mimetype=None, as_attachment=False, attachment_filename=None, add_etags=True, cache_timeout=None, conditional=False, last_modified=None) filename_or_fp:要发送文件的文件名 mimetype:如果指定了文件的媒体类型(文件类型),指定了文件路径将自动进行检测,否则将引发异常。
基础知识 1) 什么是”Last-Modified”? 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的 IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。
端点切片(EndpointSlices) 是一个新 API,它提供了 Endpoint API 可伸缩和可拓展的替代方案。EndpointSlice 会跟踪 Service Pod 的 IP 地址、端口、readiness 和拓扑信息。
继前面几篇文章后再来说说老生常谈的话题,怎么样提升前端性能。文中很多取材自网络及《High Performance Web Sites》,并根据自己工作中所接触到的知识整理而成。
即使与 REST API 打交道这么多年,当我第一次了解到 GraphQL 和它试图解决的问题时,我还是禁不住把本文的标题发在了 Twitter 上。
API是一个众所周知的概念,当涉及到应用程序监控时,通常还会提到另一个概念——端点(Endpoint)。有时候这两个术语会被结合在一起使用,比如API端点。
一般来说,如果我们想要研究一个c/c++项目的源码,我们首先要做的是为该项目生成tags文件,linux内核是c写的,所以它也不例外。
Pack Components into a Multipart Document
近年来,API 网关成了微服务架构中不可或缺的一部分。API 网关为 Uber 所有的应用程序提供一个统一入口,并提供了一个从后端微服务访问数据、逻辑或功能的接口。同时,它还提供了一个集中的地方来实现许多高级职责,包括路由、协议转换、速率限制、负载削减、丰富头信息并传播、数据中心亲缘性限定、安全审计、用户访问阻塞、移动客户端生成等。
https://developer.yahoo.com/performance/rules.html
路由机制会把一个请求的URI映射到一个Controller上面的Action,所以当你发送一个HTTP请求的时候,MVC框架会解析这个请求的URI,并尝试着把它映射到一个Controller上面的Action。
EndpointSlices是一个令人兴奋的新API,它提供了Endpoints API的可扩展和可扩张的替代方案。EndpointSlice跟踪Pod服务后面的IP地址,端口,准备情况和拓扑信息。
使用etcd grpc-proxy start的命令开启 etcd 的 gRPC proxy 模式,包含上表中的静态成员:
合并图片(如css sprites,内置图片使用数据)、合并CSS、JS,这一点很重要,但是要考虑合并后的文件体积。
面试必问之-页面性能优化 参考原文地址 我们面试的时候很多的问题,其中问的频率比较高的一个就是页面怎么进行性能优化, 我们一般直接回答很多条,然后导致一个问题就是很多的面试官还会继续问,说具体怎么实现你说的这些方法,下面我们就简单的说几个典型的。记住页面性能优化的终极目的还是提高用户体验,所以一定意义上说提高用户体验也是页面性能优化的一部分。 性能优化 减少http的请求数 这个是我们最习惯的回答,但是其实很多面试官会接着问,怎么减少呢?这个时候很多人就晕了,其实也不难,从两个方面减少,分别从业务
网站的加载速度不仅影响着用户体验,也会影响搜索引擎的排名,在百度推出“闪电算法”以来,将网站首屏打开速度被列入优化排名行列,并明确指定打开时间为 2 秒。作为前端开发的我们需要如果来优化网站的打开速度呢?下面就整理挖掘出很多细节上可以提升性能的东西分享给大家
场景:在一个拥有多个 Pods 的服务中,需要创建一个 EndpointSlice 来更有效地管理网络端点。
Amazon Web Services,Microsoft Azure,Google Compute Engine等云服务提供商以及OpenStack,vCloud,OnApp等平台经过API或Web服务正变得日益可编程。若要使用这些API / Web服务,我们需要开发一个连接器。我们有开发当今几乎所有云平台或服务的API连接器的经验。本博客旨在分享我们的经验,并提供开发云服务或平台Web服务连接器所需的一些最佳练习。
1.尽可能使用少的HTTP请求 Make fewer HTTP requests;
Calico 组件 下图显示了 Kubernetes 的必需和可选 Calico 组件,具有网络和网络策略的本地部署。 Calico 组件 Calico API server Felix BIRD confd Dikastes CNI plugin Datastore plugin IPAM plugin kube-controllers Typha calicoctl 云编排器的插件 Plugins for cloud orchestrators Calico API 服务器 主要任务:让您直接使
客户端(前端)和服务器(后端)之间的通信通常不是超级直接的。因此,我们使用一个叫作“应用编程接口”(或 API)的接口,作为客户端和服务器之间的中介。
问题:我怎么才能收到你们公众号平台的推送文章呢? 内容部分 1.尽量减少HTTP请求数 80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样式表,脚本,Flash等等。减少组件数必然能够减少页面提交的HTTP请求数。 减少页面组件数的一种方式是简化页面设计。 合并文件是通过把所有脚本放在一个文件中的方式来减少请求数的,当然,也可以合并所有的CSS。 CSS Sprites是减少图片请求数量的首选方式。把背景图片都整合到一张图片中,然后用CSS的background-ima
Reporting API 定义了一个新的 HTTP Header,Report-To,它让 Web 开发人员以自定义的方式来将浏览器的警告和错误发送到指定服务器。例如 CSP违规, Feature Policy 违规,使用了废弃API,浏览器崩溃和网络错误等是可以使用 Reporting API 收集的一些信息。
使用微服务比起使用单体式应用程序结构有许多优点。 但是微服务并不像单体式应用程序一样已经有确定的开发模式。 许多问题尚未解决,我们也还没有看到完善的“微服务方式”的实施标准的出现。 测试也不例外。对于整体来说,有单元测试,组件测试,集成测试。界限清晰,编写测试的方式也很清晰。 但是、对于微服务呢? 假设说,你使用微服务之间的 HTTP(s)和 REST 作为你的通信层。 在一个典型的应用中,一个(微)服务有一系列的依赖关系,可能是其他的(微)服务。 在单元测试中一样,第一个想法是模拟对象测试(mocking
内容优化 (1)减少HTTP请求数:这条策略是最重要最有效的,因为一个完整的请求要经过DNS寻址,与服务器建立连接,发送数据,等待服务器响应,接收数据这样一个消耗时间成本和资源成本的复杂的过程。常见方法:合并多个CSS文件和js文件,利用CSS Sprites整合图像,Inline Images(使用 data:URL scheme在实际的页面嵌入图像数据 ),合理设置HTTP缓存等。 (2)减少DNS查找 (3)避免重定向 (4)使用Ajax缓存 (5)延迟加载组件,预加载组件 (6)减少DOM元素数量:
在本文中,我们将讨论ASP.NET Core中的新路由。我们将了解什么是接口(endpoints)路由,它是如何工作的,它在哪里使用,以及如何创建自己的路由。
一些云服务提供商及其OpenStack,vCloud,OnApp等服务提供平台正越来越多地通过API或Web服务进行编程。要使用这些API / Web服务,我们需要开发一个接口。对于如今大部分的云平台或者云服务,我们在开发API接口方面有着丰富的经验。本博客旨在分享我们的经验,并提供为云服务或者云平台开发web服务接口的一些方案
本文最初发表于 HTTP Toolkit 网站,经原作者 Tim Perry 授权由 InfoQ 中文站翻译分享。
在Go语言中,你可以使用结构体来表示区间,并使用切片来存储区间集合。然后,你可以遍历区间集合,找到与给定区间重叠且具有最小低端点的区间。
今天,我们将讨论一些可遵循的最佳实践。我们将保持简短和甜蜜——所以系好安全带,出发咯!
本文翻译自:https://learnk8s.io/graceful-shutdown
Vue.js是一个流行的JavaScript框架,它提供了许多工具和功能来帮助开发人员构建高效、可维护的Web应用程序。其中一个重要的工具是环境变量,它可以让你在不同的环境中配置不同的参数和选项。在这篇博客中,我们将介绍如何在Vue应用程序中设置环境变量,以及如何在开发、生产和测试环境中使用它们。
第一次了解到 GraphQL 是查阅 Github 文档时,偶然看到 v4 版本文档只要一个链接就可以完成所有获取数据和更新数据请求,当时看到觉得特别惊艳,能跳出 REST 请求模式,构建出全新的一套环境来实现网络请求,GraphQL 的开发者确实很有想法。
API 管理 API 通过 API 管理发布 API 在开发人员门户中可见 API 只能通过 API 管理网关访问 请求 API 时强制执行速率限制 对 API 进行更改时会自动维护规范 针对标准规范的每次更改验证端点规范 规范包含请求和响应的模式 请求和响应模式和示例经过格式验证,示例通过模式验证 URI API 使用 HTTPS(或在特殊情况下使用其他带加密的无状态协议) 在组织的官方域下发布的 API 可见域与其他 API 共享(即 API 使用者看到的域?) 端点深度最多为 2 个资源(示例 /
OpenFabrics Interfaces (OFI) 是一个新的应用程序接口系列,它向中间件和应用程序公开通信服务。 Libfabric 是 OFI 的第一个成员,是在 OpenFabrics 联盟的支持下,由行业、学术界和国家实验室合作伙伴组成的广泛联盟在过去两年中设计的。 libfabric 在 verbs 接口的目标和目标的基础上进行构建和扩展,专门设计用于满足高性能应用程序的性能和可扩展性要求,例如消息传递接口 (MPI) 库、对称分层内存访问 (SHMEM) 库、分区全局地址 Space (PGAS) 编程模型、数据库管理系统 (DBMS) 以及在紧密耦合的网络环境中运行的企业应用程序。 libfabric 的一个关键方面是它被设计为独立于底层网络协议以及网络设备的实现。 本文简要讨论了创建新 API 的动机,描述了驱动其设计的新颖需求收集过程,并总结了 API 的高级架构和设计
Spring Boot Actuator是Spring Boot提供的一个用于监控和管理应用程序的扩展模块。Actuator通过HTTP端点和JMX(Java Management Extensions)提供了一系列功能,包括查看应用程序的运行状况、度量指标、日志、追踪和应用信息。它为开发人员和运维人员提供了方便的手段来监控和管理Spring Boot应用。
大家好,又见面了,我是全栈君。相信互联网已经越来越成为人们生活中不可或缺的一部分。Ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实 现的功 能。比如Google机会已经把最基本的office应用都搬到了互联网上。当然便利的同时毫无疑问的也使页面的速度越来越慢。自己是做前端开发的,在性能方面,根据Yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的。
在微服务系列的这篇文章中,我们将讨论API网关以及它们如何帮助我们解决基于微服务架构的一些重要问题。我们在本系列的第一篇文章中描述了这些和其他问题。
正如我之前所写, GraphQL是下一代API技术,它正在改变客户端应用程序与后端系统的通信方式以及后端系统的设计方式。
web前端是应用服务器处理之前的部分,前端主要包括:HTML,CSS,javascript,image等各种资源,针对不同的资源有不同的优化方式。
这是系列文章中的第一篇:使用GraphvizOnline可视化ASP.NETCore3.0终结点。.
领取专属 10元无门槛券
手把手带您无忧上云