Python7:接口自动化学习1 RPC

news2024/12/25 0:47:18

API(Application Programmming Interface) 应用编程接口,简称“接口”
接口:程序之间约定的通信方法
特点:约定了调用方法,以及预期的行为,但是不透露具体细节
意义:程序能解耦,互通有无

接口的类型:
应用级接口:

  • RPC
  • REST
  • GraphQL

RPC

remote procedure call 远程过程调用:将其他程序、系统、软件的功能(函数)当做是本程序的功能,进行使用
在这里插入图片描述

有gRPC:谷歌开发的高性能的跨语言的RPC组件,使用 Protocol Buffers 定义接口
使用步骤:
1 定义数据格式:pb
2 利用grpc组件,根据数据格式生成python代码
3 启动server(拥有add方法的程序A)
4 启动client,调用server中的方法

安装相关工具:

pip install grpcio grpcio-tools

定义数据格式:定义一个.proto类型文件(谷歌推荐的文件类型,其实文件类型不重要),官网文档加载特别慢,就直接百度了一篇文档,下面有一个定义好的数据结构
在这里插入图片描述
一个简单示例如下:

//sashaRPCTest.proto
syntax = "proto3";

service Sasha{
    rpc add(Request) returns (Response){};
}

message Request {
   int32 z = 1;
   int32 o = 2;

}

message Response {
     int32 w  = 2;

}

定义好数据后,需要利用grpc组件,根据数据格式生成python代码python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. ./sashaRPCTest.proto

生成的文件如下:
在这里插入图片描述
其中.proto为自己写的协议即数据格式,pb2.py为python版的协议,grpc.py为python的grpc(server和client)

接下来启动server和client的代码示例:
在这里插入图片描述


对RPC测试,只需要拥有RPC客户端,然后对其调用即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1547407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化脚本-Excel批量生成二维码

演示: Excel二维码批量生成 exe资源文件: 下载exe 代码实现: pip install openpyxl openpyxl 是一个用于读写 Excel 文件的 Python 库 pip install qrcode qrcode 是一个 Python 库,可以用来生成二维码(Quick Resp…

【Mybatis 基础】增删改查(@Insert, @Delete, @Update, @Select)

Mybatis Insert Delete Update Select Mybatis用法基础操作 - 删除delete 传参SpringbootMybatisCrudApplicationTests 测试类删除预编译SQL 基础操作 - 插入Insert 插入SpringbootMybatisCrudApplicationTests 测试类插入对象主键返回 基础操作 - 更新UPDATE 更新SpringbootMy…

汽车电子行业知识:智能汽车电子架构

文章目录 3.智能汽车电子架构3.1.汽车电子概念及发展3.2.汽车电子架构类型3.2.1.博世汽车电子架构3.2.2.联合电子未来汽车电子架构3.2.3.安波福汽车电子架构3.2.4.丰田汽车电子架构3.2.5.华为汽车电子架构 3.智能汽车电子架构 3.1.汽车电子概念及发展 汽车电子是车体汽车电子…

8.windows ubuntu 子系统:karken2,bracken微生物物种注释

上次,我们对测序数据去了人源序列。接下来我们就要对去人源的reads进行微生物物种注释。 我们选择karken2和bracken。 首先是建立karken2的数据库,有多种方法。 方法一:kraken2-build --standard --threads 4 --db ./standardDB #时间太…

阿里云国际DDoS高防的定制场景策略

DDoS高防的定制场景策略允许您在特定的业务突增时段(例如新业务上线、双11大促销等)选择应用独立于通用防护策略的定制防护策略模板,保证适应业务需求的防护效果。您可以根据需要设置定制场景策略。 背景信息 定制场景策略提供基于业务场景…

白话模电:4.耦合、差分、无源滤波、反馈(考研面试常问问题)

一、介绍一下三极管多级放大电路的三种耦合方式及其特点?耦合的目的是什么? 多级放大电路中各放大级之间的连接方式称为耦合方式。常见的耦合方式有三种:阻容耦合(RC耦合)、直接耦合和变压器耦合。 耦合的目的是将信号…

GIMP - GNU 图像处理程序 - 工具栏窗口 (Toolbox) 显示

GIMP - GNU 图像处理程序 - 工具栏窗口 [Toolbox] 显示 1. File -> Open2. GIMP 主面板里,右击弹出菜单 -> Tools -> New Toolbox3. Windows -> Dockable Dialogs -> Tool Options4. 工具选项拖动到工具箱里面5. Always On TopReferences GIMP 是跨平…

【面试题】ES文档写入和读取流程详解

前言:在回答这个问题之前我们先要搞清楚一个问题那就是什么是文档,避免不知所云! 一、什么是文档? 在Elasticsearch中,文档(Document)是最基本的信息单元,用于表示和存储数据。文…

[CSS]中块级格式化上下文(BFC)

块级格式化上下文 (BFC) 1. 什么是BFC BFC(Block Formatting Context)是一个独立的渲染区域,在这个区域内的布局不会影响到这个区域之外的元素。换句话说,它就像一个隔离的空间,里面的元素布局…

Django(二)-搭建第一个应用(1)

一、项目环境和结构 1、项目环境 2、项目结构 二、编写项目 1、创建模型 代码示例: import datetimefrom django.db import models from django.utils import timezone# Create your models here.class Question(models.Model):question_text models.CharField(max_length2…

Jmeter脚本优化——随机函数

线程组下有 2 个请求的参数中均使用到相同的参数,在进行参数化时,想 要每个请求使用不同的取值。 ( 1 ) 线程组设置如下 ( 2 ) 线程组下添加加购物车请求,请求传参包含商品 id (…

app自动化-Appium学习笔记

使用Appium,优点: 1、支持语言比较多,例如:Java、Python、Javascript、PHP、C#等语言 2、支持跨应用(windows、mac、linux) 3、适用平台Android、iOS 4、支持Native App(原生app)、Web App、Hybird App…

Go语言学习Day2:注释与变量

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、注释①为什么要写注释?②单行注释…

Android卡顿掉帧问题分析之工具篇

“工欲善其事,必先利其器”,在开始着手分析卡顿问题之前,我们还必须要掌握一些分析性能问题的工具与手段,也就是掌握分析问题所使用的“器”,才能帮助我们更好的观测系统运行的状态,找到性能问题的原因。Sy…

AI助力智慧农田作物病虫害监测,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统

智慧农业是一个很大的应用市场,将当下如火如荼的AI模型技术与现实的农业生产场景相结合能够有效提升生产效率,农作物在整个种植周期中有很多工作需要进行,如:浇水、施肥、除草除虫等等,本文的主要目的是想要以棉花作物…

基于SpringBoot和Vue的车辆管理系统的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的车辆管理系统的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕&#x1f…

吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.6-3.8

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第三周:浅层神经网络(Shallow neural networks)3.6 激活函数(Activation functions)3.7 为什么需要非线性激活函数?(why need a non…

Databend 开源周报第 137 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持查询匹配倒…

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用,其安全问题也日益凸显。其中,分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施,并提出相应的防护策略。 一、区块链面…

Spark RDD、DataFrame和DataSet的区别

Spark RDD、DataFrame和DataSet的区别 在比较这三者的区别之前,先看看他们各自的定义是什么。 Spark RDD RDD是一种弹性分布式数据集,是一种只读分区数据。它是spark的基础数据结构,具有内存计算能力、数据容错性以及数据不可修改特性。 S…