首页
学习
活动
专区
圈层
工具
发布

RESTful API设计--指南

Marius Masalar在 Unsplash 上的照片 作为软件开发人员,我们大多数人在日常生活中使用或构建 REST api。API 是系统之间的默认通信方式。...不允许有其他形式的进程间通信,不允许直接链接,不允许直接读取另一个团队的数据存储,不允许共享内存模型,也不允许有后门。唯一允许的通信是通过网络上的服务接口调用。 他们使用什么技术并不重要。...HTTP 、 Corba 、 Pubsub 、自定义协议都不重要。Bezos不在乎。 毫无例外,所有服务接口都必须从头开始设计,才能外部化。...也就是说,团队必须进行规划和设计,以便能够向外部世界的开发人员公开接口。没有例外。 任何不这样做的人都会被解雇。 最终,这被证明是亚马逊成功的关键。...亚马逊可以构建可扩展的系统,之后还可以提供像亚马逊网络服务这样的服务。 ---- RESTful api 的设计原则 现在,让我们来了解在设计 RESTful api 时应该遵循的原则。

2.1K50

OpenStack Zun组件详解

在使用Zun的时候,可以直接调用Zun的自带工具或API来创建和管理Docker的Workflow。...Zun的用户功能(以及某些管理员功能)都通过REST API公开,可以直接使用。 另外,也可以通过其他OpenStack组件的API或者SDK来间接调用Zun的API。...它需要在控制器节点上安装Zun API server,并在每个计算节点上安装Zun-agent。...下面命令就是利用了Neutron和Kuryr来为zun容器提供网络服务的: ? 为了容纳需要保存数据的应用程序,常用的方法是利用外部服务为容器提供持久卷。...Serverless容器技术或解决方案(如亚马逊网络服务(AWS)Fargate,Azure容器实例(ACI)和OpenStack Zun)的出现为在云上运行容器提供了一种可行的替代方案。

2.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Rest API请求管理最佳实践:RestClient-cpp库的应用案例

    随着各种网络服务和应用程序的不断涌现,有效地管理和调用REST API变得至关重要。为了解决这一需求,开发人员们倾向于寻找可靠且易于使用的库来简化REST API请求的处理。...RestClient-cpp的主要特点包括:简洁易用的API设计,降低了使用门槛;支持HTTP和HTTPS协议,保证了数据传输的安全性;提供了代理服务器和请求头部的设置功能,满足了不同场景下的需求;跨平台支持...,可以在Windows、Linux和macOS等操作系统上无缝运行。...设置API的URL:指定要访问的API的URL,包括所需的协议(HTTP或HTTPS)、主机名、端口号和路径等信息。...API的URL(示例为模拟URL) string amazon_api_url = "https://api.amazon.com/product?

    76810

    什么是REST API

    API(应用程序接口)通过为系统之间的对话提供接口来帮助这种类型的通信。REST只是一种被广泛采纳的API风格,我们用它来与内部和外部以一种一致的和可预测的方式进行沟通。...REST API示例 在你的浏览器中打开以下链接,从Open Trivia Database[3]中请求一个随机的计算机问题: https://opentdb.com/api.php?...},正如你所期望的那样。 然而,假设你的RESTful网络服务现在被放在网络上,域名是http://mydomain.com/hello/。...可以更改网络服务器API代码,以允许运行在任何域名的任何客户端脚本进行访问: // /hello/ GET request app.get('/hello/:name?'...数字签名的认证令牌在请求和响应头中安全地传输。JWT允许服务器对访问权限进行编码,因此不需要调用数据库或其他授权系统。

    6K20

    混合云的好处以及未来的云应用

    它可能包括企业将内部托管和外部托管相结合,但同样可以应用于那些利用公共云内部服务的业务。...公共云供应商 如今,亚马逊网络服务(AWS)、Microsoft Azure和谷歌云主导着公共云市场,这些云计算供应商正在采取哪些措施来满足未来用户的需求?...这些好处包括按需付费定价以及在与公共Azure相同的Azure环境中内部开发应用程序的能力。 亚马逊网络服务(AWS) 2006年,亚马逊网络服务(AWS)开始向企业提供IT基础设施服务作为网络服务。...可以在所有场所使用相同的API、工具、硬件和功能,以提供一致的混合体验。...该公司已将其容器和微服务技术(如Kubernetes)从用于谷歌云平台扩展到用于内部服务器或边缘设备。

    1.8K20

    玩转企业云计算平台系列(一):OpenStack 基础入门

    用户所能够使用的也是这些虚拟化的资源。阿里云、腾讯云、亚马逊云等云服务提供商的虚拟机服务即属于这种。...可靠性高 因为云计算服务的提供依靠的是服务器集群,因此避免了服务器单点故障。一台服务器一旦出现故障,那么该服务器上的应用可以在管理控制平台的操作下转移至其他的服务器,从而不会影响服务的正常提供。...2)为虚拟机提供一些相对应的基础资源,比如glance镜像服务为虚拟机提供磁盘镜像文件、network网络服务对网络资源进行管理,提供/一组应用编程接口(API),用户可以调用它们来定义网络以及nova...Network(网络服务)Neutron Neutron 管理网络资源,提供/一组应用编程接口(API),用户可以调用它们来定义网络(如 VLAN ),并把定义好的网络附加给租户。...Barbican 是 OpenStack 的密钥管理组件,其他组件可以调用 Barbican 对外暴露的 REST API 来存储和访问密钥。

    7.3K12

    张钦坤:云计算、开放平台与服务商版权责任

    3从技术角度讲,开放平台是指公开其应用程序编程接口(API)或函数(function)来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源的开发平台,同时平台方不需要更改软件系统的源代码。...4目前国际上的微软、亚马逊、谷歌、Facebook和国内的腾讯、百度、阿里等企业都依托自身核心资源推出了开放平台。   ...月租费与电话月租费类似,存储服务器、带宽按容量收费,CPU根据时长(小时)运算量收费。   第二,大量的第三方应用调用平台资源需要平台具备强大的数据运算能力,而这恰恰是云计算的核心所在。...从电信业务管理的层面看,开放API可能涉及到用户数据的保护等问题,而从著作权层面分析,开放API接口的方式则属于《信息网络传播权保护条例》中所规定的链接行为。...综上所述,笔者认为,尽管互联网开放平台的业务模式多种多样,但从基本业务模式分析,提供开放平台的企业本质上仍属于网络服务提供商,即通过提供信息网络服务,使得公众可以向互联网提供信息或者从互联网获取网络信息

    2.2K71

    超详细的Spring Boot教程,搞定面试官!

    的支持 24.1、要求 24.2、空安全 24.3、Kotlin API (1)runApplication (2)扩展 24.4、依赖管理 24.5、 @ConfigurationProperties...3.2、自定义管理服务器端口 3.3、配置管理特定的SSL 3.4、自定义管理服务器地址 3.5、禁用HTTP端点 4、通过JMX进行监控和管理 4.1、定制MBean名称 4.2、禁用JMX终结点...1.4、亚马逊网络服务(AWS) (1)AWS Elastic Beanstalk 使用Tomcat平台 使用Java SE平台 (2)概要 1.5、Boxfuse和亚马逊网络服务 1.6...2.2、外部化配置 SpringApplication 2.3、更改应用程序的外部属性的位置 2.4、使用'短'命令行参数 2.5、使用YAML作为外部属性 2.6、设置活动的弹簧配置文件 2.7、根据环境更改配置...2.8、发现外部属性的内置选项 3、嵌入式Web服务器 3.1、使用另一个Web服务器 3.2、配置码头 3.3、将Servlet,Filter或Listener添加到应用程序 (1)使用Spring

    8.7K20

    学会3款自动爬虫利器,告别手撸代码

    就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。...归纳为四大步: 根据url获取HTML数据 解析HTML,获取目标信息 存储数据 重复第一步 这会涉及到数据库、网络服务器、HTTP协议、HTML、数据科学、网络安全、图像处理等非常多的内容。...2、亮数据爬虫 亮数据是一种专门应对反爬的数据采集工具,很适合亚马逊、Shopee等电商网站的数据采集和监测。...而且亮数据还提供了专门的数据采集API,已经配置好所有爬虫环节,你只需要配置好API接口就能一键采集到各大主流网站的数据。 如果你不想自己去采集数据,它也会有现成的数据集供你下载使用。...主要优势: 平台化操作:无需搭建服务器,可直接在平台上创建、管理爬虫任务 数据源丰富:支持网页、API、数据库等多种数据源 模板化服务:提供丰富的爬虫模板,快速创建爬虫任务 使用方法: 注册账号 → 选择

    74810

    放弃FastDFS,拥抱MinIO的7大理由

    目前可用于文件存储的网络服务选择也有不少,好比阿里云OSS、七牛云、腾讯云等等,可是收费都有点小贵。为了帮公司节约成本,以前一直是使用FastDFS作为文件服务器,准确地说是图片服务器。...MinIO主要采用Golang语言实现,整个系统都运行在操作系统的用户态空间,客户端与存储服务器之间采用HTTP/HTTPs通信协议。...3)、性能优秀,可以达到每秒GB级别的读写速度 MinIO官方号称是世界上速度最快的对象存储服务器。就算部署在普通的硬件上,读对象的速度能达到183 GB/s,写对象的速度能达到171 GB/s。...6)、兼容亚马逊S3 API 亚马逊云的 S3 API(接口协议) 是在全球范围内达到共识的对象存储的协议,是全世界认可的对象存储标准。而MinIO是第一个采用S3兼容协议的产品之一。...兼容S3 API有什么好处呢?相当于目前为了节约服务器成本,选择用MinIO自主开发对象存储系统,等企业壮大之后,不想再运维基础设施,可以直接将程序平移到云厂商,不需要重新开发。

    9.2K31

    DevOps工具介绍连载(20)——Google App Engine

    API调用和160k URL Fetch API调用。...Sandbox 将您的应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关。...该 SDK 包括 App Engine 中的所有 API 和库。该网络服务器还可以模拟安全 Sandbox 环境,包括检查是否存在禁用模块的导入以及对不允许访问的系统资源的尝试访问。...其他安全限制包括:出站通信(outbound communication)只能通过所提供的邮件和URL fetch API进行,通过HTTP和HTTPS作为传输的入站通信(inbound communication...[5] 最新报道 谷歌2008年推出App Engine帮助外部开发人员在谷歌数据中心和服务器网络上开发和运行程序,从而正式进军公共云计算领域,与在该行业占据领先地位的亚马逊展开竞争。

    3.9K10

    云端中间层负载均衡工具 Eureka

    亚马逊提供了一个负载均衡工具 Elastic Load Balancer,但针对的是终端用户 Web 流量服务器,而 Eureka 针对的是中间层服务器的负载均衡。...Eureka VS ELB         亚马逊 ELB 针对的是终端用户 Web 流量服务器,Eureka 针对的是中间层服务器。 Why Eureka?        ...从图中我们可以看出,Eureka 组件分为两部分:Eureka 服务器和 Eureka 客户端。...以下是流媒体服务器 Wowza 直播的部署架构图: ?         Wowza 服务器侍服外部网络直播流量,但它需要去 CAS 服务器验证用户,还需要去 Relay 服务器读取直播流。...参考资料 https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance http://www.infoq.com/news/2012/09/Eureka

    75920

    云应用:架构师不知道的秘密

    自从云计算问世以来,它的主要重点一直就是把应用程序迁往云计算。在这个目标中所隐含的意思就是,在云计算和数据中心之间其实并不存在着什么功能性方面的差异;要说有差异,那也只是成本上的差异。...亚马逊公司是世界云计算服务的领导者,它已经超越了IaaS,增加了提供特殊功能的网络服务,如缓存、HTML加速、身份管理以及数据流量管理等等。...首先,亚马逊将会致力于抓住云计算服务发展的大机遇,而亚马逊的众多竞争对手们则会通过找到有价值的新利基市场而避开这位云计算市场巨人的强势。...我们可以把整个应用程序前端视为一个弹性元素的集合体(即一些网络服务器和一些应用程序服务器),我们可以在需要的任意时间任意地点以任意的数量进行部署。...架构师应当始终把外部工具和API纳入公司的逻辑设计范围内,这样如果网络服务发生变化或者如果他们找到了另一家具有更好服务功能的云计算供应商,那么他们就能够轻松地修改代码。

    1.1K70

    云服务应用: 架构师还不知道的秘密

    自从云计算问世以来,它的主要重点一直就是把应用程序迁往云计算。在这个目标中所隐含的意思就是,在云计算和数据中心之间其实并不存在着什么功能性方面的差异;要说有差异,那也只是成本上的差异。...亚马逊公司是世界云计算服务的领导者,它已经超越了IaaS,增加了提供特殊功能的网络服务,如缓存、HTML加速、身份管理以及数据流量管理等等。...首先,亚马逊将会致力于抓住云计算服务发展的大机遇,而亚马逊的众多竞争对手们则会通过找到有价值的新利基市场而避开这位云计算市场巨人的强势。...我们可以把整个应用程序前端视为一个弹性元素的集合体(即一些网络服务器和一些应用程序服务器),我们可以在需要的任意时间任意地点以任意的数量进行部署。...架构师应当始终把外部工具和API纳入公司的逻辑设计范围内,这样如果网络服务发生变化或者如果他们找到了另一家具有更好服务功能的云计算供应商,那么他们就能够轻松地修改代码。

    1K90

    前端网络安全

    使CSP可用, 你需要配置你的网络服务器返回 HTTP头部 Content-Security-Policy: policypolicy参数是一个包含了各种描述你的CSP策略指令的字符串 除此之外, 从外部站点导航至URL时除外。...在新版本浏览器中,为默认选项,Same-site cookies 将会为一些跨站子请求保留,如图片加载或者 frames 的调用,但只有当用户从外部站点导航到URL时才会发送。...当数据传输发生在一个设备(PC/手机)和网络服务器之间时,攻击者使用其技能和工具将自己置于两个端点之间并截获数据;尽管交谈的两方认为他们是在与对方交谈,但是实际上他们是在与干坏事的人交流,这便是中间人攻击...在SSL剥离攻击中,攻击者使SSL/TLS连接剥落,随之协议便从安全的HTTPS变成了不安全的HTTP。

    1.5K30

    一文拿下SSRF攻击利用及绕过保护机制

    唯一的区别是,在盲SSRF中,攻击者无法通过HTTP响应或错误消息从服务器接收反馈(就像上面示例中显示的admin_panel.example.com一样)。...像public.example.com上的以下页面就允许用户从Internet上传个人资料照片: https://public.example.com/upload_profile_from_url.php...这让EC2实例能够访问返回关于实例本身的数据API(在地址169.254.169.254上)。 Google Cloud上还提供了类似于EC2的实例源数据API服务。...当然,亚马逊和谷歌并不是唯一提供元数据API的网络服务,国内还有服务商提供,但是这两个平台拥有相当大的市场份额,所以攻击者正在测试的公司很可能是在这些平台中的一个平台上。...首先,我们整理下之前利用SSRF的技能,假设攻击者已经在Web应用程序上找到了获取外部资源的功能,并且可以从各种外部站点获取内容,还可以请求任意文件类型都没有任何限制。

    6.2K30

    云原生时代,18 岁的 NGINX 过时了吗?

    作为最受欢迎的网络服务器,NGINX 自发布到现在已经有 18 年了,它现在有什么样的发展规划呢?...但 NGINX 取得成功,却不仅仅是因为 NGINX 是一个网络服务器,它还具备负载均衡器、反向代理、邮件代理和 HTTP 缓存等功能,提供了构建安全、可靠的 Web 应用程序所需的几乎所有方面的能力。...比如,在 2000 年代早期,一台硬件负载均衡服务器动辄从十几万到几十万不等,因此当服务规模不大时,直接采购硬件负载均衡服务器对于很多中小公司并不划算,而通过 Web 服务器的反向代理的方式却是当时比较经济的方式...在此基础上,NGINX 和 NGINX Plus 平台又由多个分散的同类最佳工具组成,当它们串联使用时,可以以各种“风格”进行部署,以满足企业的多种需求,从而成为了市场占有率第一的网络服务器。...一般来说,微服务之间的内部 API 调用次数通常是应用到客户端之间的外部 API 调用次数的 10 倍或者更多。

    73520

    Serverless 时代,这才是Web应用开发正确的打开方式 | Q推荐

    2014 年亚马逊云科技发布 Amazon Lambda 第一次让 Serverless 从概念走向落地,也标志着 Serverless 时代的开启。...Serverless 可以渲染相应的 Web 页面到客户端,同时也支持提供 json 的 REST API,进行前后端的分离,静态的 React、Angular、Vue 前端通过 HTTP 请求, 来调用后端的...用户下载了前端后,前端会通过 API Gateway,来调用后端动态的数据。API Gateway 提供相应的 HTTP 的入口,触发 Lambda 函数,从而运行 Web 应用。...它是暴露在公网上的 HTTP 入口,其入口方式是 HTTPS 的,认证方式可以采用 IAM 的权限控制或者在公网上实现。...亚马逊云科技团队采用了如下无服务器 WooCommerce 架构,在 Amazon Lambda 上运行 WordPress。

    4.8K20

    Kubernetes Ingress深入解析

    首先,我们先来看看官方文档中关于 Service 概念的定义: Service,即将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。...Pod 共享于一台 Node (节点-服务器)上,K8S 对其配置网络隔离策略),在 K8S 集群内部还有 DNS 等网络服务,一个 K8S 集群就如同管理了多区域的 Node ,并对其进行了复杂的网络拓扑规划...此种场景下优势非常明显: 1、外部用户或调用方无须感知因为 Pod 上服务的意外崩溃、K8S 重新拉起 Pod 而造成的 IP 变更,外部用户也不需要感知因升级、变更服务带来的 Pod 替换而造成的...基于官方的描述,Ingress 是一种 Kubernetes Ingress API 资源,它提供了一种简单的方法来描述从群集外部到群集内服务的HTTP和HTTPS路由,基于HTTP协议的应用程序获取更细粒度的...其将集群内部的 Service 通过 HTTP/HTTPS方式暴露到集群外部,并通过规则定义 HTTP/HTTPS 的路由。

    1.6K30

    亚马逊销售的 Android 电视盒,正在悄悄窃取你的数据

    安全研究员 Daniel Milisic 发现他在亚马逊上购买的 T95 Android 电视盒感染了复杂的预装恶意软件。...在使用 tcpflow 和 nethogs 监控流量的恶意软件层之上发现了有问题的进程/APK,然后将其从 ROM 中删除。但有些无法追踪的恶意软件已经深深地嵌入到 ROM 中。...他还创建了一个 iptables 规则,将所有 DNS 重定向到 Pi-hole,因为恶意软件/病毒/任何无法解析的东西都会使用外部 DNS。...通过这样做,C&C 服务器最终会攻击 Pi-hole 网络服务器,而不是将我的登录名、密码和其他 PII 发送到 Linode(在撰写本文时目前为 139.162.57.135) 请注意,Milisic...最后,米利西奇总结道:“不要相信 AliExpress 或亚马逊上的廉价 Android 盒子,它们的固件带有测试密钥签名。他们正在窃取您的数据(除非您可以查看 DNS 日志)并且不留痕迹!”

    1.4K20
    领券