在上一篇中,我们体验了 gRPC 的反射和拦截器功能,并尝试使用evans 客户端对接口进行了测试。在 本篇中,我们将体验 拦截器功能,拦截器就像一个中间件功能。
拦截器可以在server和client上添加,服务端拦截器会在实际方法被调用前先执行,它有多种用途,例如:日志记录,跟踪,速率限制,身份验证和授权。同样,客户端拦截器会在实际调用发起前先执行。
接下来我们来测试一下
1. 在 server/main.go 上添加 一个简单的一元拦截器做测试、一个流拦截器做测试
2. 运行服务端和客户端测试
可以看到 server 上添加的 unary 拦截器成功运行了,接下来我们不妨做点更有意思的!
-
实践一下!
我们在我们的系统上增加一个用户登录并返回JWT访问令牌的方式
1. 在service包下添加 User.go 实体