基础知识

  • 首先,从我们最常见的『安全』网站来说。

    我们在 Chrome 浏览器中(其它浏览器类似),假如浏览的是 https 开头的网站,会发现开头会是绿色的:🔒安全』 字样,点击之后,会有个小悬浮窗口就会告诉你『连接是安全的』,浮窗下面会有三个选项:『证书、Cookies、站点设置』,继续点击证书,就会弹出一个窗口,里面大概会提到这个证书所对应的网址、有效期等。

    以 GitHub 的为例:

    www.github.com
    Issued by: DigiCert SHA2 High Assurance Server CA
    Expires: Saturday, June 20, 2020 at 20

  • gRPC 是个通用、高性能的开源 RPC 框架。它可以高效地连接单个或多个数据中心的服务。另外也可以支持可插拔的负载均衡、追踪、健康检查以及认证。最后,它也能应用于分布式计算的最后一公里来连接各种设备、手机应用、浏览器与后端服务。[1]

    这里可以留意下最后一句话,这句话的意思是:你可以使用 gRPC 来取代现有的 RESTful 接口。事实上,已经有很多案例这么做了:以关键词『gRPC iOS』或者『gRPC Android』去Google 一下就会发现很多案例。

    基础知识

    它所依赖的东西,有两个:HTTP2 以及 Protocol buffer(当然了,其它协议也是支持的,比如 JSON

  • 在 Web 应用中,有一块内容非常重要,却很容易被我们忽略:参数验证,忘了之后常常会给我们造成大量的处理错误问题,甚至直接造成应用崩溃。之前我在 你的团队需要更好的 API 文档流程 提到过,Joi 的验证非常好用,可以帮助我们验证客户端用户的上传数据以及返回数据,而在 Golang 中,我们该如何做呢?

    如果需要我们自己验证

    显然,肯定是有的,而且跟我们又爱又恨的 reflect 有关系,因为对于强类型语言来说,如果没有元编程的帮助,对于数据的验证会变得非常难受:

    if strings.Trim(mobile, " ") == "" {
      return nil, ErrEmptyPar