典型案例 3:十分钟搭建弹性可扩展的 Web API |学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
.cn 域名,1个 12个月
简介: 快速学习 典型案例 3:十分钟搭建弹性可扩展的 Web API

开发者学堂课程【从 0 入门函数计算:典型案例 3:十分钟搭建弹性可扩展的 Web API】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/645/detail/10728


典型案例 3:十分钟搭建弹性可扩展的 Web API


内容简介

一、基本概念

二、Web API 的开发流程

三、演示 Web API 的开发流程

 

一、基本概念

在 10 分钟内搭建弹性可扩展的外部 API 主要分为3部分:

基于函数计算的 Web API 和普通 Web API 的区别和优势;

开发流程中介绍在函数计算的控制台进行 Web API 的开发;

根据实例演示函数计算外围 API 的开发过程。

常见了 Web API 的架构主要包括客户端,服务端,数据库。Web API 由服务器来提供,同时服务器还要完成负载均衡,登录鉴权,日志监控等相关操作。当客户端流量快速增加时,服务端只能通过水平扩展加机器的方式来增加自己的服务能力

这种常规模式分析主要有两点局限性:

1.除了开发业务代码还有大量的服务器运维成本来保证服务的稳定性可用性,花费大量的时间进行工作,占用开发时间,降低项目的研发效率。

2.流量突然增加时,需要水平扩展加机器,弹性的响应能力比较差,扩容速度往往需要数 10 分钟,无法实现秒级的极速扩容,这样就会导致一段时间内的服务能力不足,同时,当流量变少难以做到及时缩容,造成机器成本的浪费。

在函数计算的 Web API 架构当中与常规的 Web API 架构相比,客户端和数据库未发生变化的。

主要的变化体现在服务器端。

它的主要体现有:之前需要开发团队维护的路由模块以及鉴权模块都将接入服务商提供的 API 网关系统以及健全系统,开发团队无需再维护这两部分的代码,只需要维护相关的规则即可。

在这样的一个结构下服务器端的业务代码被拆分为一个一个的函数,不同的函数就代表了不同的功能。

在函数计算的 Web API 架构当中,已经没有了服务器的存在,这是因为目的就是让使用者只关注自己的业务逻辑即可,也就是每一个业务逻辑对应的函数,所以像安全问题,资源调度问题全部交给云厂商来负责。

相对于传统的项目而言,传统项目无论是否有用户访问服务器都在运行当中,就是造成了比较大的成本支出,而在 serverless 而言,只有在用户去用发起请求时函数才会被激活并执行,并且按照调用次数收费,相对来说可以在有流量的时候,才有支持,没有流量的时候就没有支出,相对来说成本会进行进一步的降低。


二、Web API 的开发流程

首先第一步登录控制台并创建一个应用,创建应用的方式有两种,第一种就是如果有现有的 web 应用,就通过第一种方式创建 web 应用,直接将的代码打包上传。第二种方式是通过模板来创建应用,就是通过这个模板的方式来创建应用,模板可以理解为它相当于是一个脚手架,可以快速的去完成一些基础配置,例如权限,角色,网关的配置。当完成创建应用之后,第二步就是在这个应用下去创建一个函数,而函数主要是支持事件函数,HTTP 函数和模板函数,选择 HTTP 函数。创建函数之后就开始开发具体的业务逻辑。业务逻辑开发完之后要配置一个触发器,配置触发器因为是 Web API 的一个方式,所以说的触发器其实就是一个 HTTP 的一个请求,然后在这个 HTTP 请求里边可以指定域名,来设定的真正的这个 HTTP 的域。然后最后一部分就是可以通过函数计算的监控来进行一调试以及服务上线之后的使用量的监控情况。


三、演示 Web API 的开发流程

首先进入管理控制台,选择应用中心,创建模板,创建应用然后选择一个基于Python 语言的简单 web 应用配置,叫做 Python API。通过这种模板方式的来创建应用相当于是一个脚手架,会把底层所依赖的一些资源帮去创建好,然后只要其实这些资源去开发一些函数就好了,这样会提高开发效率。下一步来创建一个函数,新建函数是 HTTP,下一步所在服务就选择 Python API,叫做 Python API test,语言选择 Python 3.0,触发器的名称也叫做拍 python web api,请求方式选择 get 。通过操作其实会自动生成一个叫做 Python API test 的函数。这个函数有一个最基本的实现,初始化的实现通过invoke来调用,然后就会翻译到最后,是 Hello World dispose,就在这个基础之上进行一个开发,首先先把这个格式变成一个阶层格式,返回的结果依然是 Hello World。它的一个实现的过程就是当用户按照触发器配置的路径,进行这个路径访问的时候,就会去触发到写的这个函数代码的执行,然后最终去结构给用户。

配置方式首先进入到自定义域名,需要在 FC 当中去接入到自己的一个域名,指定这样的一个服务,然后用刚才选择就是 Python API test 这样的一个函数,然后版本选择 last,当访问这个域名下的这个路径的时候就会去触发到刚才定义的这个Python API test 函数。就会返回到刚才预期的一个结果叫做 Hello World。这样完成了一个9最简单的 web API。9可以做一些更加复杂的操作。现在有这样的一个场景,有一个文件叫做 Story TXT 的文件,现在想实现一个功能就是用户去访问这个页面链接的时候,可以把这个文件的内容返回给用户。首先先 import 这个 OSS 的一个基本依赖,environment 其中包括两部分内容,一部分就是函数计算的上下文,这个上下文当中其实存了当前访问这个用户的一些基本的信息,方便做操作。第二部分包含 HTTP 请求里边的一些参数,需要用SS的话需要用到一些里面的一些参数。从 context 当中取出,可以搭配在文档中然后来看,具体内容还有其他的。

返回如果没有权限就需要给当前的这个函数计算加一个角色,赋予访问时经过的权限。给 Python API test 所在的应用创建角色,并且给这个角色赋予了访问权限。执行可以看到打印出来“阿里巴巴 is Happy Child”。把最终的这个结果返回给访问的用户。

整个逻辑再梳理一下就是首先去配置自定义域名,并且在这个域名下去配路径,然后当用户去访问这个路径的时候,就会触发到的触发器,触发器就会去调函数,然后在函数过程当中,去访问了 oss 当中叫做 storage TXT 的文件,并且把文件的这个内容返回给几个用户,这样一个完整的功能就实现了。函数的调用情况在这个函数指标的地方可以看到最近一个小时所有的一个调用情况。

相关文章
|
21天前
|
前端开发 机器人 测试技术
【RF案例】Web自动化测试弹窗处理
在进行Web自动化测试时,常会遇到不同类型的弹窗,如ajax、iframe、新窗口及alert/Confirm等。这些弹窗可通过Selenium进行定位与处理。其中,ajax弹窗直接定位处理;iframe需先选中再操作;新窗口类似iframe处理;而alert/Confirm则需特殊方法应对。在Robot Framework中,需先定义并获取窗口后使用特定关键字处理。此外,还有部分div弹窗需在消失前快速定位。希望本文能帮助大家更好地处理各类弹窗。
23 6
【RF案例】Web自动化测试弹窗处理
|
22天前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`<select>` 和 `<option>`)、文本域(`<textarea>`)、标签解释(`<label>`)、各类按钮(`<button>`)及表单重置功能、无语义布局标签(`<div>` 和 `<span>`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
11天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
44 6
|
10天前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
33 3
|
11天前
|
JSON API 数据库
从零到英雄?一篇文章带你搞定Python Web开发中的RESTful API实现!
在Python的Web开发领域中,RESTful API是核心技能之一。本教程将从零开始,通过实战案例教你如何使用Flask框架搭建RESTful API。首先确保已安装Python和Flask,接着通过创建一个简单的用户管理系统,逐步实现用户信息的增删改查(CRUD)操作。我们将定义路由并处理HTTP请求,最终构建出功能完整的Web服务。无论是初学者还是有经验的开发者,都能从中受益,迈出成为Web开发高手的重要一步。
32 4
|
9天前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
26 1
|
11天前
|
JSON API 开发者
惊!Python Web开发新纪元,RESTful API设计竟能如此性感撩人?
在这个Python Web开发的新纪元里,RESTful API的设计已经超越了简单的技术实现,成为了一种追求极致用户体验和开发者友好的艺术表达。通过优雅的URL设计、合理的HTTP状态码使用、清晰的错误处理、灵活的版本控制以及严格的安全性措施,我们能够让RESTful API变得更加“性感撩人”,为Web应用注入新的活力与魅力。
27 3
|
13天前
|
JSON API 数据格式
深度剖析!Python Web 开发中 RESTful API 的每一个细节,你不可不知的秘密!
在 Python Web 开发中,RESTful API 是构建强大应用的关键,基于 Representational State Transfer 架构风格,利用 HTTP 卞性能。通过 GET、POST、PUT 和 DELETE 方法分别实现资源的读取、创建、更新和删除操作。示例代码展示了如何使用 Flask 路由处理这些请求,并强调了状态码的正确使用,如 200 表示成功,404 表示未找到资源等。
35 5
|
21天前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
30 11
|
21天前
|
前端开发
前端web入门第四天】03 显示模式+综合案例热词与banner效果
本文档介绍了HTML中标签的三种显示模式:块级元素、行内元素与行内块元素,并详细解释了各自的特性和应用场景。块级元素独占一行,宽度默认为父级100%,可设置宽高;行内元素在同一行显示,尺寸由内容决定,设置宽高无效;行内块元素在同一行显示,尺寸由内容决定,可设置宽高。此外,还提供了两个综合案例,包括热词展示和banner效果实现,帮助读者更好地理解和应用这些显示模式。
下一篇
无影云桌面