来自 安全 2021-05-07 16:23 的文章

防御ddos_防御cc盾_

高防cdn_高防_新用户优惠

我叫妮可·佩罗特,我是阿佩里安的文档主管。我的工作是收集大量技术信息,并将其提炼为可管理的内容集合,以帮助我们的客户使用Apperian平台。我的工作很大一部分是采访Apperian的工程师,以研究一个技术主题或了解一个新功能的来龙去脉。我最近和Frank Chiang坐了下来,他是Apperian的一位杰出的软件工程师,想进一步了解Apperian的web服务架构。弗兰克是那种在同一句话中使用"代码"和"美丽"两个词的人。很多。他对自己所做的事充满热情,这在他的工作中表现出来。Apperian发布了一系列开放api。就像听起来的那样,我们正在破门而入,向我们的web服务公开一组编程接口,这样客户和合作伙伴就可以利用Apperian平台的强大功能,作为定制企业移动解决方案的一部分。这是令人兴奋的东西,我有很多问题。例如,为什么我们要使用restapi?为什么我们选择Python而不是其他gazillian编程语言?什么是烧瓶,我为什么要在乎?以下是我对弗兰克的采访节选。在方框中,我为不太熟悉web服务技术的读者定义了一些术语。如果你不需要的话就跳过这些。Web服务为程序提供了一种通过互联网。通过应用程序编程接口(API),一个程序可以向另一个程序的web发出请求服务,然后使用来自该web服务的响应在其网站或应用程序中执行功能。让我们考虑一个使用Apperian的API的基本示例。说一个Apperian客户想在其公司网站,让员工轻松注册企业应用程序目录。按钮后面的代码将发送向Apperian的web服务请求添加用户放松。Apperian会回复一个下载链接用户移动设备的应用程序目录。REST(表示状态转移)定义了一组设计web服务的体系结构原则。休息焦点在系统的资源(或函数)上,公开每个资源通过一个网址。程序可以访问该URL以接收数据关于资源,类似于在浏览并获取网页。NP:我们一直在使用JSON-RPC API。为什么我们要切换到restapi?FC:REST作为JSON-RPC、SOAP和其他协议的一种更简单的替代方案,已经得到了广泛的接受。我们在设计API时的目标之一是它应该是直观的。在阅读详细文档之前,人们应该能够猜测每个接口应该做什么。这是对文件的挖掘吗?]这就是REST真正闪耀的地方,也是最终导致我们从现有的JSON-RPC协议切换的原因。REST有时是一个棘手的主题,ddos云服务器防御,因为REST纯粹主义者对它的实现非常狂热。我们决心尽可能地保持平静,但如果选择更直观的话,我们就会偏离。因此,将easeapi描述为RESTful比纯REST更准确,我们更喜欢这样。Python、PHP、Java和C是一长串面向对象编程语言。Python和PHP是两种解释语言,意味着它们执行直接指示。编译语言,如Java和C#,需要首先把程序编译成机器语言指令。有许多相同点和不同点-优点和缺点-在一系列面向对象的语言中。语言战争仍在继续,但蟒蛇因其直观的语法和可读性。[NP]当我们切换到REST时,我们开始用Python而不是PHP编程。为什么是Python?[FC]我们知道我们不想继续使用PHP,因为它"尽可能努力不出错"的理念不适合企业API,我们希望所有的东西都尽可能地一致。我们仔细考虑过C,它是Java的一个更完善的版本,但却无法将LAMP堆栈切换到Microsoft堆栈。堆栈是一个软件包,当一起使用时,它形成一个支持应用程序的技术解决方案堆栈服务器。LAMP是Linux、Apache、MySQL和PHP的缩写,并引用一个使用Linux作为操作系统,Apache作为Web服务器,MySQL作为关系数据库管理服务器,PHP作为面向对象语言。Python经常被用来代替PHP。在Apperian,我们也使用PostgreSQL而不是MySQL。这个Microsoft stack或WISA使用Windows(操作系统),Internet信息服务(文件/web服务器)、SQL server(数据库软件),以及ASP.NET,尽管软件组合可能会有所不同。例如,ASP.NET可以被其他.NET技术取代或补充。Python是一种我们都喜欢的语言。它很漂亮,社区非常活跃,代码易于阅读和维护。看。我告诉你什么了?]Ruby非常相似,但是我们倾向于使用Python,DDOS有效防御,因为代码库中已经存在用Python编写的脚本。与编译语言相比,Python最大的缺点之一是它的性能。这使得Scala等语言成为讨论的焦点,因为它的性能几乎与C不相上下,并且有一个非常适合API的演员模型。最后,cc防御设,我们认为在Dropbox和Quora中大量使用Python证明了Python对于高负载环境足够快。我们还喜欢Python提供的web框架,我们最终决定使用Flask。web框架是一组包或模块的集合作为HTTP层之上的一层。web框架允许开发人员通过处理较低级别的细节,如捕捉错误和接口路由。Django是最大的基于Python的web框架。烧瓶是一个更小,但仍然强大的框架,以易于使用而闻名。[NP]为什么要烧瓶?[FC]有很多针对Python的web框架。使用像Django这样的重量级web框架从来不是我们的选择。我们想要一层薄薄的,能挡住我们的路,但也能向上扩展,以便能够支撑重物。这使得我们考虑了webapp2和烧瓶框架webapp2来自webapp的派生,webapp是由googleappengine团队创建的。所以webapp2当然有正确的血统。Flask是Armin Ronacher的创意,他把Flask(后来称为Denied)作为愚人节的玩笑,将werkzeug用于路由,simplejson用于序列化,jinja2用于模板化,并将其称为"微框架",作为对其他微框架的挖掘。令他惊讶的是,这就像野火一样,促使他真正创造了我们今天所知道的烧瓶。web框架的决定可能是我们最热衷的一个,这在事后看来很有趣,因为我们的主要标准是它应该尽可能薄。我们花了周末的时间来研究每一个框架,并对其进行了艰苦的负载测试,最后,我们决定为其活跃的社区clear documentation选择Flask[NP:Yaa!],ddos产品可防御,以及优雅的代码结构,尽管我相信我们不会错的。到目前为止,我们一点也不后悔我们的决定。[NP]我刚刚看到你们这些工程师挤在一个会议室里热烈地讨论web框架。告诉我真相。这些讨论有多激烈?你有没有想过把你的白板笔扔下来给别人计时?[FC]只是正常的点名和拉毛,这是所有健康的热血工程师的商标。我们对工作充满热情,但我们也互相尊重。虽然我们在交谈中互相挑战,但我们都明白每个人的最终目标都是打造一款经得起时间考验的产品。在所有讨论中,水果挞是3个:可重复使用的、有弹性的、有响应性的。当我们开始设计API时,国内外高防cdn加速服务,我们的理念是在这三个主要支柱上建立基础。我们的愿景是让API成为整个EASE产品的核心。我们的应用程序目录和管理门户都将是API的消费者,而且对于Apperian内部消费者和第三方消费者(即我们的客户和合作伙伴)将没有特殊待遇。通过这种方式,我们可以"吃自己的狗粮",识别出API用户可能面临的任何痛点,并快速修复它们。事实上,我可以不停地讲3R。Nicole Perrault是Apperian的文档主管,可以通过nperrault@apperian.com。