当前位置:网站首页>想了解API接口,这一篇就够了
想了解API接口,这一篇就够了
2022-08-09 10:15:00 【AI_孟菜菜】
API接口:
API接口是什么?
API全称是:Application Programming Interface,即:应用程序接口。开发人员可以使用这些API接口进行编程开发,而又无需访问源码,或理解内部工作机制的细节。
比较常见的现实场景是,在开发安卓应用时需要使用到安卓系统提供的API,在进行Windows桌面应用开发时需要用到微软系统提供的API,在进行微信小程序开发时可使用微信开放接口API。
更为常见的是,API接口很可能是远程的服务端API,其背后采用Java、PHP、C#、Pyhon、C/C++、Ruby、Scala等一种或多种后端语言开发搭建,提供了数据存储、通讯、各类服务等功能。一般是使用HTTP协议进行通讯,使用JSON格式序列化返回接口结果和数据。

API接口的地位与作用
API接口是项目开发过程中必要的组成部分之一,是客户端应用与服务端应用通信和桥梁。
除此之外,从专业角度来说,API不仅代表着接口本身,还蕴含了服务端的整体系统架构、数据存储、服务端管理、第三方系统的整合等,只是对外看来,表现出来的是API接口。
可以说,API接口直接使用方是客户端应用,地位是客户端与服务端之间的通信桥梁,是信息化的桥梁,所担负的作用是把业务功能通过接口服务形式具体化,为应用编程开发提供技术支持。
开放API的方式:Django,Flask,Tornado,FastAPI
- Django:
主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架。
优点:
大和全(重量级框架)
自带orm,template,view
需要的功能也可以去找第三方的app
注重高效开发
全自动化的管理后台(只需要使用起ORM,做简单的定义,就能自动生成数据库结构,全功能的管理后台)
session功能
缺点:
template不怎么好用(来自自身的缺点)
数据库用nosql不方便(来自自身的缺点)
如果功能不多,容易臃肿
- Tornado:
主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架。
优点:
少而精(轻量级框架)
注重性能优越,速度快
解决高并发(请求处理是基于回调的非阻塞调用)
异步非阻塞
websockets 长连接
内嵌了HTTP服务器
单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势
自定义模块
缺点:
模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块
- Flask:
主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架
优点:
简单,Flask的路由以及路由函数由修饰器设定,开发人员不需要借助其他文件匹配;
配置灵活,有多种方法配置,不同环境的配置也非常方便;环境部署简单,Flask运行不需要借助其他任何软件,只需要安装了Python的IDE,在命令行运行即可。只需要在Python中导入相应包即可满足所有需求;
入门简单,通过官方指南便可以清楚的了解Flask的运行流程;
低耦合,Flask可以兼容多种数据库、模板。
缺点:
对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱。
压测结果:同为5秒1000并发量,Jmeter
Flask:

Django:1秒500

FastAPI:

Torando:

学习目标:Flask,Tornado
Flask:flask 中的request - 小白° - 博客园
Tornado:
Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月开源软件。
特点:
- 作为Web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的处理方式。
- 作为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。性能: Tornado有着优异的性能。
1. tornado.web
tornado的基础web框架模块
RequestHandler:tornado.web.RequestHandler:处理请求
封装了对应一个请求的所有信息和方法,write(响应信息)就是写响应信息的一个方法;对应每一种http请求方式(get、post等),把对应的处理逻辑写进同名的成员方法中(如对应get请求方式,就将对应的处理逻辑写在get()方法中),当没有对应请求方式的成员方法时,会返回“405: Method Not Allowed”错误。
Application
Tornado Web框架的核心应用类,是与服务器对接的接口,里面保存了路由信息表,其初始化接收的第一个参数就是一个路由信息映射元组的列表;其listen(端口)方法用来创建一个http服务器实例,并绑定到给定端口(注意:此时服务器并未开启监听)。
tornado.web.Application.listen()(示例代码中的app.listen(8000))的方法中,创建了一个http服务器示例并绑定到给定端口,我们能不能自己动手来实现这一部分功能?
Httpserver
tornado.httpserver模块,它就是tornado的HTTP服务器实现。然后直接 .listen()
get_argument方法的原型:self.get_argument(name, default=ARG_DEFAULT, strip=True)
name:从get请求参数字符串中返回指定参数的值。如果出现多个同名参数,这个方法会返回最后一个值。
default:设置未传的name参数的默认值。如果name未传,default也未设置,会抛出tornado.web.MissingArgument异常
strip:表示是否过滤掉参数值的左右空白字符,默认为True。通常情况下不需要空格字符,但是在搜索等情况下需要空格。
Tornado开发API接口流程:
- 自定义一个类,类中传入请求
- 定义方法,get或者post方法
- 从get或者post方法中获取参数
- 传入自己项目的方法中
- 返回的结果self.write(),返回相应信息
- 开启tornado服务:tornado.options.parse_command_line()
- http_server = tornado.httpserver.HTTPServer(app)
8. 启动监听:http_server.listen(端口号),7,8两步可以合并到一步写成app.listen()
9. 启动当前线程的IOLoop:tornado.ioloop.IOLoop.instance().start()
边栏推荐
- How to quickly get through the mirror release process?
- 学习NET-SNMP之二-----------VisualStudio编译Net-SNMP
- By asking where the variables are stored, the shepherd boy laughed and said to use pointers, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the use of go lang type pointers (Poin
- 程序环境和预处理
- 3D打印了这个杜邦线理线神器,从此桌面再也不乱了
- [贴装专题] 基于多目视觉的手眼标定
- Practical skills: a key for image information in the Harbor, quick query image
- 文件操作
- stimulus.js 初体验
- 踩坑scrollIntoView
猜你喜欢
随机推荐
阿里神作!吃透这份资料入厂率高达99%
Throwing a question? The execution speed of the Count operation in the Mysql environment is very slow. You need to manually add an index to the primary key---MySql optimization 001
好久没更新博客了
虚拟列表key复用问题
Technology Sharing | How to simulate real usage scenarios?mock technology to help you
程序环境和预处理
【八大排序④】归并排序、不基于比较的排序(计数排序、基数排序、桶排序)
Celebrate ranked 18
慕课网-简易扑克牌游戏 思路清晰 简易版
markdown转ipynb--利用包notedown
3D printed this DuPont cable management artifact, and the desktop is no longer messy
Practical skills: a key for image information in the Harbor, quick query image
The GNU Privacy Guard
一天半的结果——xmms on E2
SQL Server查询优化
梦笔记0809
OpenGL 2.0编程例子
单元测试2之实际结果检查的引用
实验室装修及改造工程程序简介
关于页面初始化








![[贴装专题] 视觉贴装平台与贴装流程介绍](/img/ec/870af3b56a487a5ca3a32a611234ff.png)
