java endpoint原理_Endpoint
# Endpoint
> service的调用层,还可以添加各种中间件,验证,限流,日志。
## 样例
```go
// 定义请求格式
type UserRequest struct {
Uid int `json:"uid"`
Method string
Token string
}
// 定义返回格式
type UserResponse struct {
Result string `json:"result"`
}
func GenUserEndpoint(userService IUserService) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
r := request.(UserRequest)
fmt.Println("当前用户名是:", ctx.Value("LoginUser"))
result := "nothing"
if r.Method == "GET" {
// 添加端口是为了测试负载均衡
result = userService.GetName(r.Uid) + strconv.Itoa(util.ServicePort) // 获取服务端口
} else if r.Method == "DELETE" {
err = userService.DelUser(r.Uid)
if err != nil {
result = err.Error()
} else {
result = "success"
}
}
return UserResponse{Result: result}, nil
}
}
```
## 添加中间件
> 添加日志中间件
```
// 日志中间件
func UserServiceLogMiddleware(logger log.Logger) endpoint.Middleware {
return func(next endpoint.Endpoint) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
r := request.(UserRequest)
logger.Log("method", "GET", "event", "xxx", "userid", r.Uid)
return next(ctx, request)
}
}
}
// mian层调用
UserServiceLogMiddleware(logger)(GenUserEndpoint(user))
```
java endpoint原理_Endpoint相关推荐
- 《Java虚拟机原理图解》5. JVM类加载器机制与类加载过程
参考网址:http://blog.csdn.net/luanlouis/article/details/50529868 0.前言 读完本文,你将了解到: 一.为什么说Jabalpur语言是跨平台的 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 七 ( 局部变量表分析 )
文章目录 前言 一.编译生成带局部变量表的字节码文件 二.局部变量表 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 二 ( 常量池位置 | 常量池结构 | tag | i ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
文章目录 前言 一.属性类型 二.Code 属性表数据结构 三.属性名称索引 四.属性长度 五.操作数栈最大深度 六.局部变量存储空间 七.字节码长度 八.存储字节码指令的一系列字节流 前言 上一篇博 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )
文章目录 前言 一.方法表结构 二.方法计数器 三.方法表数据解析 ( init 构造方法 ) 1.方法访问标志 2.方法名称索引 3.方法返回类型 4.方法属性数量 前言 上一篇博客 [Java 虚 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )
文章目录 前言 一.字段表总数据结构 二.访问标志 三.字段名称 四.字段描述符 五.属性项目数 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 三 ( 访问和修饰标志 | ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 三 ( 访问和修饰标志 | 类索引 | 父类索引 | 接口计数器 | 接口表 | 字段计数器 | 字段表 )
文章目录 前言 一.访问和修饰标志 二.类索引 三.父类索引 四.接口计数器 五.接口表 六.字段计数器 七.字段表 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 二 ( ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 二 ( 常量池位置 | 常量池结构 | tag | info[] | 完整分析字节码文件中的常量池二进制数据 )
文章目录 前言 一.常量池结构分析 1.常量池位置 2.常量池结构 3.常量池单个常量 4.常量池单个常量 tag 标签 二.常量池字节码文件分析 0.常量池附加信息 1.常量池 #1 常量分析 2. ...
- Java NIO原理 图文分析及代码实现
最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.可以参考: ...
- java native方法_并发系列-native函数回调Java方法原理实践
写在前面 上一篇分享了Java调用native函数过程原理实践,文章最后留了一个问题,本章主要对C程序回调我们的Java程序原理进行实践. 调用C程序之后他是怎么知道来调用我们我们的哪个方法?又是如何 ...
最新文章
- 理解 async/await 的执行
- python实现图片转字符画_Python实现图片转字符画的示例代码
- 解决ADB server didn't ACK问题,连上手机问题
- RabbitMQ入门-Topic模式
- 两个json对象合并为一个json对象
- 仓库选址(排序不等式)
- iOS Xcode12安装P12证书问题
- 关于alfa无线设备
- zabbix Too many processes on xxx
- 达梦8初始化参数之BLANK_PAD_MODE
- 【07月24日】预分红股息率最高排名
- 讯飞AIUI集成语音语义的21003错误
- Android广告图片轮播,支持无限循环和设置轮播样式、切换时间等
- 传奇开服怎么开的起来?
- 机器人运动学、动力学基础上利用MATLAB进行PID控制仿真
- mac 取消 “Ctrl+空格“切换输入法
- SQL Server 2012内部原理及故障排除(专栏)
- _ 10. 控制器和存储器一起组成了计算机核心——中央处理器,安徽2014年会计从业资格考试试题:会计电算化(第一套)...
- AndroidPdf框架一览(一)
- Unity使用UMP插件实现接入海康网络摄像头方法
热门文章
- Markdown的替代品:ASCIIDoc标记语言
- 锦佰安科技入驻AppCenter 本质提升云主机账户安全
- 服务器主板数码管显示ff,ESP8266之旋转编码器与四位数码管模块显示圈数
- python常见的数据类型是_python基本数据类型都在这里
- 『文献回顾』“文本自动摘要” 相关文献综述
- 给女朋友道歉的java代码_如何诚恳的跟女朋友道歉?
- 程序员女朋友礼物python代码_一位程序猿送给女朋友的礼物
- c语言转义字符表解析,C语言常用转义字符表
- python:求素数
- Linux:Samba 文件共享服务器的搭建与访问