REST API

作者:管理员 发布时间:2021-01-22 10:48

    Restful API是一种以HTTP协议为基础的多语言多平台的通讯形式,目前各类云服务、网络平台OpenAPI几乎都是用本类型的通讯形式进行交互。是除Socket通讯外,最常用的多软件与多平台间交互形式。

那么Restful API张什么样呢?

它就是一个按照固定规则产生的网址,访问防止返回值为数据,没有界面;

如下面是一个根据访问用户IP判断省份,经纬度等功能的API接口:

https://restapi.amap.com/v3/ip?key=0113a13c88697dcea6a445584d535837

  

Python制作Restful API

Python项目实现HTTP协议的应用,可选择的库主要有:Flask、Django等;

以Flask为例(忽略安装flask库,没有自行安装):

我们新建一个api.py文件

# -*- coding: utf-8 -*-
from flask import Flask
app = Flask(__name__)

@app.route('/api/') #路由地址,就是访问的路径了
def index():
    return "Hello, World!" #显示内容,一般为JSON格式

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)

保存,并启动api.py,host为访问IP,默认为本地127.0.0.1,port为访问端口,暂时写5000,如果被占用随便改。

web知识:一个网站,就是一个监听固定端口的程序,可以通过部署所在的电脑或服务器IP+端口进行访问;如果web类项目设置的端口号为80,则可以不写端口号。IP地址可以与域名进行绑定,这样就可以通过域名访问这个IP对应的web网站程序了。


看到以上内容,说明启动起来了,访问地址加端口,再加你设置的地址/api/,如下


HTTP请求,如果需要传递参数,分为GET请求和POST请求,区别在于GET请求直接显示在URL上,POST参数隐藏在请求头中,不显示出来。一般POST请求用于参数较大的内容传输。

我们可以通过路由对请求进行设置:

如:@app.route('/api/', methods=['GET', 'POST'])

可以只写POST,也可以只写GET,也可以都写,写哪个支持哪个。

from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route('/success/')
def success(name):
   return 'welcome %s' % name

@app.route('/login',methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['nm']
      return redirect(url_for('success',name = user))
   else:
      user = request.args.get('nm')
      return redirect(url_for('success',name = user))

if __name__ == '__main__':
   app.run(debug = True)




Python使用Restful API

Python访问web类的项目,需要使用requests库

import requests

r = requests.get('https://127.0.0.1:5000/api/')       # 最基本的不带参数的get请求
r1 = requests.get(url='https://127.0.0.1:5000/api/', params={'wd': 'python'})      # 带参数的get请求

如果使用post的地址,把get换成post即可:

requests.post('http://127.0.0.1:5000/api/')

返回值,则为Restful api的返回内容,一般为JSON格式;


标签:
更多介绍:
URL编解码
JSON
Copyright © 2020 万物律动 旗下 AI算法狮 京ICP备20010037号-1
本站内容来源于网络开放内容的收集整理,并且仅供学习交流使用;
如有侵权,请联系删除相关内容;