再谈RESTAPI最佳实践】的更多相关文章

近一年半,我参与了两到三个项目的工作,这些项目涉及到大量供“外部”使用的REST API,稍后我们会看到为什么要将“外部”这个词放在引号之中.在项目工作期间,我不得不对这些API进行反复地设计,再设计和重构,这篇文章是我对Rest API最佳实践的一些个人看法,希望读者能够从中获益. 更好.更早地设计 对于很多语言来说,实现REST Service是一项极其微不足道的任务.换言之,无论你选择什么底层框架,只要辅以少量配置和代码,你可以在一小时之内就拥有一个REST Service.虽然对于缺乏经…
2019 年 8 月 31 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·成都站,APISIX 主要作者王院生在活动上做了<APISIX 高性能实践>的分享. OpenResty × Open Talk 全国巡回沙龙是由 OpenResty 社区.又拍云发起,邀请业内资深的 OpenResty 技术专家,分享 OpenResty 实战经验,增进 OpenResty 使用者的交流与学习,推动 OpenResty 开源项目的发展. 王院生,…
目录 ABP概念简述 ABP在[事务操作]上的简便性 ABP在[关联查询]上的“美”和“坑” ABP的[参数验证]方式 ABP概念简述 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称.它基于DDD的经典“分层架构”思想,开发了便捷的功能模块. ABP在[事务操作]上的简便性 以一个最简单的学生选课为例,包含学生.课程.选课结果三个实体. 在学生选课过程中,当学生选课后,会进行两个操作: 1.增加学生选课记录. 2.增加课程班级人数. 这两个过…
在本文中阿里云资深产品专家云郎分享了基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议. 本文内容根据演讲视频以及PPT整理而成. 大家下午好,我是云郎,之前在甲骨文做企业架构师8年,目前是MaxCompute产品经理. 在这么长的客户工作过程中,作为产品PD,一定是跟客户在一起的.我经常被一些问题挑战:云郎,我们现在要建数据仓库,我该怎么去规划?云郎,我现在这边是大数据的建设团队,好像数据团队不怎么理我,什么情况?云郎,我们这边现在建了一个平台,现在性能好像有问题,是不是…
本文转载自 www.postgres.cn 下的文章: 再谈PostgreSQL的膨胀和vacuum机制及最佳实践http://www.postgres.cn/news/viewone/1/390 还有两个相关的文章也挺不错: 也谈PostgreSQL的Vacuum机制及其最佳实践http://bbs.postgres.cn/news/viewone/1/387 新特性:postgresql的vacuum漫谈https://mp.weixin.qq.com/s/EzRqxPDowf3mqsbV6…
[转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceManager解析二进制资源文件 小看RESX资源文件的Designer.cs文件 返回目录 程序集清单资源 在程序集中嵌入资源的最简单方法是什么?那就是使用Visual Studio中的“嵌入式资源(Embedded Resource)”创建选项,相当于使用csc的”/resource”参数.具体步…
STL实践与分析 --再谈string类型(下) 四.string类型的查找操作 string类型提供了6种查找函数,每种函数以不同形式的find命名.这些操作所有返回string::size_type类型的值,下面标的方式标记查找匹配所发生的位置:或者返回一个string::npos的特殊值,说明查找没有匹配.string类将npos定义为保证大于不论什么有效下标的值. string类型的查找操作(參数在下表定义) s.find(args) 在s中查找args的第一次出现 s.rfind(ar…
STL实践与分析 --再谈迭代器[下] 三.反向迭代器[续:习题] //P355 习题11.19 int main() { vector<int> iVec; for (vector<int>::size_type index = 0; index != 10; ++index) { iVec.push_back(index); } for (vector<int>::reverse_iterator r_iter = iVec.rbegin(); r_iter !=…
STL实践与分析 --再谈迭代器[中] 二.iostream迭代[续] 3.ostream_iterator对象和ostream_iterator对象的使用 能够使用ostream_iterator对象将一个值序列写入流中,其操作过程与使用迭代器将一组值逐个赋值给容器中的元素同样: ostream_iterator<string> out_iter(cout,"\n"); istream_iterator<string> in_iter(cin),eof; wh…
<开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业技术积累,重点展示了开源安全管理平台OSSIM在大型企业网运维管理中的实践.国内目前也有各式各样的开源安全运维系统,经过笔者对比分析得出这些工具无论在功能上.性能上还是在安全和稳定性易用性上都无法跟OSSIM系统想媲美,而且很多国内的开源安全运维项目在发布1-2年后就逐步淡出了舞台,而OSSIM持续发展了十多…
http://www.searchdatabase.com.cn/showcontent_38045.htm MySQL性能优化的21个最佳实践 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了. 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的.因为,我们某些查询语句会…
(摘录) <Javascript 24条最佳实践> 自己一直偏向于实用主义,不是学院派,不是学究派,只讲究把东西能够很好的做出来,但经过一段时间的开发工作当自己总结出来一些东西时,觉得挺有收获,但岂知已早有很多前人早都写的更完美,总结的更好:所以咱们做开发的,务必要统筹好实践与理论.自研与拿来的关系.理论与实践的关系,咱们从小的毛邓都有学习,只是细化下来,到咱们开发人员身上该如何做的问题.我主张在做项目中发现自身技术点的不足,而后抽出时间吃透理论,第二天再投入开发,以更好的更自信的对项目开发负…
NET中异常处理的最佳实践 本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 安全编程 不要抛出“new Exception()” 不要将重要的异常信息存储在Message属性中 每个线程要包含一个try/catch块 捕获异常后要记录下来 不要只记录Exception.Message的值,还需要记录Exception.ToString() 要捕获具体的异常 不要中止异常上抛…
通过前几天写的两篇博客(浅谈移动端三大viewport和移动端em和rem区别),我们现在来总结一下如何实现一个最佳方案. 之前在第二篇博客中提到过我们可以使用媒体查询来针对不同设备及做适配,如下图 但是这个可能不会太精准,比如我的设备布局viewport可能是370px,这样只能使用320这一版本.而事实上,他们的viewport并不相同,所以他们的布局也得不一样.也就是说我们如果用css媒体查询只能说是可以用,但不是最佳实践.其实通过看某些牛逼的移动端网站,可以看到他们的共同点,他们都是使用…
<深入理解Java虚拟机:JVM高级特性与最佳实践>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062566 内容简介 作为一位java程序员,你是否也曾经想深入理解java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,<深入理解java虚拟机:jvm高级特性与最佳实践>极尽化繁为简之妙,能带领你在轻松中领略java虚拟机的奥秘.<深入理解java虚拟机:jvm高级特性与最佳实践>是近年来国内出版的唯一一本与…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 上一篇文章中详细分析了Fragment相关知识,那么作为"小Activity",Fragment能做什么呢,如何使用Fragment得到最佳实践呢.Fragment的设计最初也…
在web2.0之前,写jsp的时候虽然有es和JSTL,但是还是坚持jsp.后面在外包公司为了快速交货,还是用了php Smart技术. web2.0后,前端模板技术风行. 代表有如下三大类: String-based模板技术(基于字符串的parse和compile过程) DOM-based模板技术(基于Dom的link或compile过程) Living template (基于字符串的parse 和 基于dom的compile过程) String-based templating 这是一种基…
我经常会面试一些做PHP的开发者,让我很奇怪的是,10个人总有8个多不知道什么是REST服务,甚至是没有听说过.但RESTFul API已经是现在互联网里对外开放接口的主流模式,可参考: 豆瓣API https://developers.douban.com/wiki/?title=api_v2 GitHub https://developer.github.com/v3/ 数一数年限,据我接触REST到现在也差不多有8年左右了.可能大家现在对从JavaScript客户端直接访问服务器API这种…
[编者按]本文作者为 Mathias Schäfer,旨在回顾在客户端大量使用JavaScript 的最佳 Web应用实践.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 对笔者来说,JavaScript 社区似乎已经陷入了一个时间扭曲隧道.我们现在进行的关于 JavaScript驱动(JavaScript-driven) Web 应用的讨论与2006年"Ajax"出现以及2012年JavaScript"单页应用"流行起来时的讨论如出一辙.只要我们站在巨人…
此文已由作者汤晓静授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. lua 协程与 nginx 事件机制结合 文章前部分用大量篇幅阐述了 lua 和 nginx 的相关知识,包括 nginx 的进程架构,nginx 的事件循环机制,lua 协程,lua 协程如何与 C 实现交互:在了解这些知识之后,本节阐述 lua 协程是如何和 nginx 的事件机制协同工作. 从 nginx 的架构和事件驱动机制来看, nginx 的并发处理模型概括为:单 worker + 多连接 +…
[From] http://www.cocoachina.com/ios/20170601/19404.html 引子 这篇文章是笔者近期关于Weex在iOS端的一些研究和实践心得,和大家一起分享分享,也算是对学习成果的总结.文章里面提到的做法也许不是最佳实践,也许里面的方法称不算是一份标准的指南手册,所以标题就只好叫“伪最佳实践指北”了.有更好的方法欢迎大家一起留言讨论,一起学习. 由于笔者不太了解Android,所以以下的文章不会涉及到Android. 一. React Native 和 W…
文章来源:小青年原创发布时间:2016-06-05关键词:mui,html5+,webview转载需标注本文原始地址: http://zhaomenghuan.github.io/#!/blog/20160605 写在前面 写这篇文章之前先吐吐槽,因为是学生,不想用父母辛辛苦苦挣的钱买什么苹果手机,因为确实贵,本人至今用的还是去年买的魅蓝note 1(虽然已经很久了,但是没办法啊,舍不得花钱换.),前段时间项目钱收到了本来想换手机的,但是想了想还是先省一省,过几个月开始实习了再看吧!(哈哈,如果…
原文 RESTful API Design: 13 Best Practices to Make Your Users Happy 写在前面 之所以翻译这篇文章,是因为自从成为一名前端码农之后,调接口这件事情就成为了家常便饭,并且,还伴随着无数的争论与无奈.编写友好的 restful api 不论对于你的同事,还是将来作为第三方服务调用接口的用户来说,都显得至关重要.关于 restful api 本身以及设计原则,我陆陆续续也看过很多的文章和书籍,在读过原文后,感觉文中指出的 13 点最佳实践还…
Prometheus 是一个开源的监控解决方案,部署简单易使用,难点在于如何设计符合特定需求的 Metrics 去全面高效地反映系统实时状态,以助力故障问题的发现与定位.本文即基于最佳实践的 Metrics 设计方法,结合具体的场景实例--TKE 的网络组件 IPAMD 的内部监控,以个人实践经验谈一谈如何设计和实现适合的.能够更好反映系统实时状态的监控指标(Metrics).该篇内容适于 Prometheus 或相关监控系统的初学者(可无任何基础了解),以及近期有 Prometheus 监控方…
首先,异常处理应该是系统设计规约的一部分出现在系统设计文档中,而不仅仅是一种技术实现. 作为设计文档的一部分,异常处理应该着眼于系统容错性和稳定性(正如楼主提到的那样).然后在根据这个规约,再来具体讨论和选择异常处理中使用的各种技术细则. 比如,在设计服务时,必须在服务的调用接口处有异常处理,否则客户端传过来的任何有害数据都可能让服务器挂掉. 比如,对异常的处理在系统的设计中,必须有明确说明,不能随便在哪个模块中处理异常. 软件中有bug是可以理解的.但是如果是经常出现的bug,并且因为没有足够…
樊登有一节课讲的挺有意思,说中国有个组织叫绩效改进协会,专门研究用技控代替人控的事情.其用麦当劳来举例子,他说麦当劳其实招人标准很低,高中文凭就可以,但是培养出来的人,三五年之后,每一个都是大家争抢的对象.为什么呢?因为麦当劳的标准化做的很好.其中有一个例子是说,麦当劳的汉堡,出炉之后,15分钟之后没卖掉就扔了.大家想想,如果你是领导,你如何让员工遵循这个标准?而麦当劳的解决方案说起来也简单,汉堡做出来之后就放入保温箱,15分钟后保温箱就会报警,通知餐厅经理该批次的汉堡过期了需要丢弃. 人是组织…
作者|绍舒 审核&校对:岁月.佳佳 编辑&排版:雯燕 前言 消息队列是分布式互联网架构的重要基础设施,在以下场景都有着重要的应用: 应用解耦 削峰填谷 异步通知 分布式事务 大数据处理 并涉及互动直播.移动互联网&物联网,IM 实时通信.Cache 同步.日志监控等多个领域. 而本文主要围绕着商业版本的消息队列 RocketMQ,和开源版本 RocketMQ 进行比较,并结合一些实践中的场景来展示大型分布式应用的上云最佳实践. 核心能力 商业版本消息队列 RocketMQ 相比较开…
谈到到DevOps,持续交付流水线是绕不开的一个话题,相对于其他实践,通过流水线来实现快速高质量的交付价值是相对能快速见效的,特别对于开发测试人员,能够获得实实在在的收益.很多文章介绍流水线,不管是jenkins,gitlab-ci, 流水线,还是drone, github action 流水线, 文章都很多,但是不管什么工具,流水线设计的思路是一致的.于此同时,在实践过程中,发现大家对流水像有些误区,不是一大堆流水线,就是一个流水线调一个超级复杂的脚本,各种硬编码和环境依赖,所以希望通过这篇文…
XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷单,再高级点就防范DDoS攻击,不过我们还是回到“基础”这个话题上吧,对于中间人攻击,使用HTTPS是正确且唯一的做法,其它都是歪门邪道,最好还要购买各个浏览器都承认的SSL证书:防范XSS,关键点在于将用户提交数据呈现在页面上的时候,需要使用Html Encode,或在处理带HTML格式的用户表单…
这个最佳实践是我目前人在做的一个站点,主要功能: oauth登录 发布文章(我称为"片段"),片段可以自定义一些和内容有关的指标,如“文中人物:12”.支持自定义排版.插图.建立相册. 多个片段可以组织在一起,形成"事件". 任意事件.片段都可以互相标记因果关系. 可以follow事件或者他人. 事件和片段模糊搜索. 我对目前前端框架的观点已在另一篇文章中讲过,这里只介绍一下目前实践的情况. 使用requirejs做模块化,上线时用r.js打包. 使用avalon做…