原创 3-gin渲染

[toc] gin渲染 各種數據格式的響應 json、結構體、xml、yaml類似於java的properties、ProtoBuf package main import ( "github.com/gin-gonic/gin

原创 golang中使用json的技巧

[toc] 前言 taowen是json-iterator的作者。 序列化和反序列化需要處理JSON和struct的關係,其中會用到一些技巧。 原文 Golang 中使用 JSON 的小技巧是他的經驗之談,介紹了一些struct解析成j

原创 go操作etcd

[TOC] Etcd介紹 ​ etcd高可用的分佈式key-value存儲系統,可以用於共享和服務的註冊和發現 etcd的特點 完全複製:集羣中的每個節點都可以使用完整的存檔 高可用性:etcd可用於避免硬件的單點故障或網絡問題 一致性

原创 go操作es

[TOC] ​ 前言:elasticsearch 是一個基於Lucene構建的開源的、分佈式、restful接口的全文搜索引擎。es還是一個分佈式的文檔數據庫,其中每個字段均可被索引,而且每個字段的數據均可被搜索。es擴展能力很強,

原创 golang相關

[toc] context context作用是主動關閉運行中的goroute。 實現原理:通過向通道中發送信號,來達到關閉goroute, 倆個根節點,4個方法 Background()和TODO() Go內置兩個函數:Backgro

原创 數組和切片使用技巧

兩個切片如何去重 func sliceUniq(lenSlice, shortSlice []string) (process []string) { lenMap := make(map[string]bool, len(lenS

原创 1-gin入門和路由

[toc] gin入門 介紹 gin是一個golang的微框架,封裝比較優雅,api友好,源碼註釋比較明確,具有快速靈活,容錯方便等特點 對於golang而言,web框架的依賴要比python、java之類的要小的多,完全使用自身net

原创 2-gin數據解析和綁定

gin 數據解析和綁定 json數據解析和綁定 客戶端傳參,後端接收並解析到結構體 // json數據解析和綁定 type Login struct { // binding 標籤的意思是必須要解析,若接收值爲空,則報錯,必選字段

原创 4-gin中間件

全局中間件 所有請求都經過此中間件 package main import ( "github.com/gin-gonic/gin" "time" "fmt" ) // 自定義中間件 func MiddleWare(

原创 http包中keepalive問題

[TOC] 開啓keepalive 測試之前,需要把client作爲全局變量,公用客戶端 //定義客戶端,然後關閉keepalive var client = http.Client{ Transport: &http.Trans

原创 grpc通信

[TOC] 摘要: 總體上來說,HTTP每次請求比較浪費資源的。雖然HTTP也是走在TCP上面的,但是HTTP請求自己添加了很多自己的信息,因此會消耗帶寬資源。所以一些公司就是用RPC作爲內部應用的通信協議。 rpc RPC(Rem

原创 7-實現無限級菜單

[toc] 第一種方法 數據表如下 -- ---------------------------- -- Table structure for `auth_menu` -- ---------------------------- D

原创 time處理5*8h

輸入5*8h 7*24h、開始時間、結束時間、返回時間間隔 package main import ( "fmt" "strconv" "strings" "time" ) // 是否在工作時間 func

原创 9-gin使用websocket

[toc] gin使用websocket Gin 框架默認不支持 websocket,可以使用 github.com/gorilla/websocket 實現。 Talk is cheap. Show me the code,代碼如下:

原创 BindQuery和shouldBindQuery的區別

BindQuery BindQuery在請求過程中, 如果參數錯誤會直接拋異常 返回400狀態 // BindQuery is a shortcut for c.MustBindWith(obj, binding.Query). fu