想了解API接口,这一篇就够了

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

  1. Django:

主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架。

优点:

大和全(重量级框架)

自带orm,template,view

需要的功能也可以去找第三方的app

注重高效开发

全自动化的管理后台(只需要使用起ORM,做简单的定义,就能自动生成数据库结构,全功能的管理后台)

session功能

缺点:

template不怎么好用(来自自身的缺点)

数据库用nosql不方便(来自自身的缺点)

如果功能不多,容易臃肿

  1. Tornado:

主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架。

优点:

少而精(轻量级框架)

注重性能优越,速度快

解决高并发(请求处理是基于回调的非阻塞调用)

异步非阻塞

websockets 长连接

内嵌了HTTP服务器

单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势

自定义模块

缺点:

模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块

  1. 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月开源软件。

特点:

  1. 作为Web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的处理方式。
  2. 作为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。性能: Tornado有着优异的性能。

1. tornado.web

tornado的基础web框架模块

RequestHandlertornado.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接口流程:

  1. 自定义一个类,类中传入请求
  2. 定义方法,get或者post方法
  3. 从get或者post方法中获取参数
  4. 传入自己项目的方法中
  5. 返回的结果self.write(),返回相应信息
  6. 开启tornado服务:tornado.options.parse_command_line()
  7. http_server = tornado.httpserver.HTTPServer(app)
    8. 启动监听:http_server.listen(端口号),7,8两步可以合并到一步写成app.listen()
    9. 启动当前线程的IOLooptornado.ioloop.IOLoop.instance().start()

 

  • 45
    点赞
  • 381
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: 撰写一篇Flask API接口文档,需要以下几个步骤:1. 明确API的功能:明确API的目的,使用场景,输入参数,输出结果,以及可能的错误码等。2. 确定API的访问方式:需要确定API是采用GET还是POST方式访问,以及采用HTTP协议的哪个版本。3. 编写API文档:根据前两步收集的信息,编写API文档,介绍API的功能、调用方式、输入参数、输出结果、可能的错误码等。4. 测试API:使用测试工具对API进行测试,确保其功能可用。 ### 回答2: Flask API接口文档 本文档详细说明了Flask框架中的API接口,以便开发人员能够了解接口的功能、参数和返回值等重要信息。 一、接口说明 1. 接口名称:getUserInfo 功能:获取用户信息 请求方式:GET 请求URL:/user/{id} 2. 接口名称:createUser 功能:创建用户 请求方式:POST 请求URL:/user 请求参数:name(用户姓名)、age(年龄) 返回值:成功创建用户的信息 3. 接口名称:updateUserInfo 功能:更新用户信息 请求方式:PUT 请求URL:/user/{id} 请求参数:id(用户ID)、name(用户姓名)、age(年龄) 返回值:成功更新用户信息的提示 4. 接口名称:deleteUser 功能:删除用户 请求方式:DELETE 请求URL:/user/{id} 请求参数:id(用户ID) 返回值:成功删除用户的提示 二、接口详细说明 1. getUserInfo:根据用户ID获取用户信息 请求示例:GET /user/123 返回示例: { "id": 123, "name": "用户1", "age": 25 } 2. createUser:创建用户 请求示例:POST /user 请求参数: { "name": "用户2", "age": 30 } 返回示例: { "id": 124, "name": "用户2", "age": 30 } 3. updateUserInfo:根据用户ID更新用户信息 请求示例:PUT /user/124 请求参数: { "name": "用户3", "age": 35 } 返回示例: { "message": "用户信息更新成功" } 4. deleteUser:根据用户ID删除用户 请求示例:DELETE /user/124 返回示例: { "message": "用户删除成功" } 三、错误码说明 - 200:请求成功 - 400:请求参数错误 - 404:请求的资源不存在 - 500:服务器内部错误 四、其他说明 - 所有接口返回数据均为JSON格式 - 请求参数使用HTTP Body传输 - 接口使用JWT进行身份验证 以上是Flask API接口文档的简要说明,开发人员可根据实际需求进一步扩展和完善接口功能。 ### 回答3: Flask API接口文档 本文档旨在介绍和说明Flask API接口的使用方法和参数。Flask API是一个基于Python的轻量级Web框架,用于开发可伸缩的Web应用和服务。 1. 接口地址 接口地址为:http://example.com/api。 2. 接口列表 以下是可用的接口列表: - GET /users 返回所有用户信息。 - GET /users/{id} 返回指定用户的信息。 - POST /users 创建一个新用户。 - PUT /users/{id} 更新指定用户的信息。 - DELETE /users/{id} 删除指定用户。 3. 接口参数和返回值 a) GET /users 无需传递参数。返回一个包含所有用户信息的JSON数组。 b) GET /users/{id} 参数:id (整数),表示要查询的用户ID。 返回值:返回指定用户的详细信息,以JSON格式呈现。 c) POST /users 参数:name (字符串),表示要创建的用户的名称。 返回值:返回新创建用户的ID。 d) PUT /users/{id} 参数:id (整数),表示要更新的用户ID。 返回值:若成功更新用户信息,返回更新后的用户信息;若用户不存在,返回错误信息。 e) DELETE /users/{id} 参数:id (整数),表示要删除的用户ID。 返回值:若成功删除用户,返回成功删除的用户信息;若用户不存在,返回错误信息。 4. 使用示例 a) 获取所有用户信息: 请求:GET /users 返回: [ { "id": 1, "name": "user1" }, { "id": 2, "name": "user2" } ] b) 获取指定用户信息: 请求:GET /users/1 返回: { "id": 1, "name": "user1" } c) 创建新用户: 请求:POST /users?name=user3 返回: { "id": 3 } d) 更新指定用户信息: 请求:PUT /users/2?name=user_new 返回: { "id": 2, "name": "user_new" } e) 删除指定用户: 请求:DELETE /users/2 返回: { "id": 2, "name": "user2" } 以上为Flask API接口的文档说明。使用者可以根据需要选择合适的接口和参数,进行相关操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值