uniapp 获取网络状态_网络可视化 | RESTful API 快速实践

点击上方蓝字关注我们!

2c3cbbc889d453433eae9f4a627ec691.png

REST(Representational State Transfer):表现层状态转移,一种软件架构风格。什么是表现层状态转移?即通过URL地址拼接上HTTP的动词(GET,POST,PUT,DELETE)来操作资源,进行增删改查。基于REST构建的API就是RESTful API。RESTful API它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

01

了解 RESTful API 

  • RESTful架构

RESTful就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。要理解RESTful架构,首先就是理解Representational State Transfer(表现层状态转移)的含义。

  • 表现层

表现层比较抽象,我们可以简单将理解为网络资源的表现形式,资源是我们何以从网络上获取的具体信息,比如图片,文本,数据等信息。变现层就是将我们的资源实体以特定的方式表示出来,比我我们使用JSON表示数据信息。

  • 状态转移

当我们访问一个网站,表示了客户端和服务器的一个互动过程。在这个过程中,就涉及到数据和状态的变化。我们从服务器获取,修改数据都是状态的变化。客户端与服务器通过HTTP协议进行通信具体通过使用常见的四个HTTP动词来实现。

GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源DELETE用来删除资源。

我们对服务器进行访问,服务器会向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。

200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)204 NO CONTENT - [DELETE]:用户删除数据成功。400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
  • URL统一资源定位符

在www上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是www的统一资源定位标志,就是指网络地址。RESTfulAPI 常使用URL指定我们访问的资源。

02

RESTful API 实践

  • 服务程序

要学习使用RESTful API我们首先需要一台服务器运行提供 RESTful API的服务器程序,这里我们在本地服务器上运行ntopng(一个网络流量监控分析工具),ntopng提供了丰富的RESTful API供用户使用。

  • 编程环境

目前,许多编程语言都可以使用RESTful API,比如JS,java,python语言风格便于理解和编写,并且有十分丰富的库可以使用,这里我们以python为例,首先我们需要在python环境安装requests模块。

pip install requests
  • API接口查询

在使用RESTful API之前我们首先要查询服务程序提供怎样的RESTful API,通过查询ntopng的是使用手册,我们可以看到提供了许多的API,这里我们以获取接口信息的API为例。这里可以看到可以使用GET方法查询接口信息,以及查询是需要的变量信息。

84870458a34ef27c41becc32ea4f46a1.png

然后我们可以看到可以使用POST方法删除ntopng的某个具体的用户的API。

d72710e417a7e751821f9ab69cfa6c26.png

  • 编程

首先使用GET的方法获取接口参数。

import requests, json   github_url = 'http://192.168.0.117:3001/lua/rest/v1/get/interface/data.lua?ifid=2&host=192.168.0.117&verbose=true'r = requests.get(github_url, auth=('admin', 'mp1234'))                               print(r.json())
输出结果如下字典数据:

b99de814358a3364e86f3f59889b48b8.png

使用POST 可以对网络资源进行编辑和修改,现在我们根据API的描述使用POST的方法删除一个用户,打开ntopng我们可以看到,这个有一用户canda。

bad8d7b062079699152c64fa96f5862c.png

编写如下程序,利用RESTful API删除用户canda.

import requests, jsongithub_url='http://192.168.0.117:3001/lua/rest/v1/delete/ntopng/user.lua'header=({'Content-Type':'application/json'})data = json.dumps({"username":"canda"})r = requests.post(url=github_url,headers=header,data=data,auth=('admin','mp1234'))                         #dirprint(r.json())
返回结果如下,用户已经成功被删除。

e63ca8ceac0e1131638e6b72b5f64c77.png

-END-

9ada6e8d88722456dfb23cfa7a537041.png

de95c18fdf43cd1ea30eff2435a651ba.png精彩推荐虹科-五分钟带你了解时间同步使用Omnia增强网络的可视性、安全性和监控性能使用nDPI和ntopng监控工业IoT / Scada流量虹科网络监控软件解决方案(四)-- 流量监控/分析ntopng d2a1c87442a36060c79bef60c4db7e10.gif

点击下方“阅读原文”查看更多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值