幾個解放雙手的 Go 開發利器
本文轉載自微信公眾號「Golang技術分享」,作者機器鈴砍菜刀。轉載本文請聯系Golang技術分享公眾號。
Go 開發中,我們會構造各種 struct 對象,經常會有 json、數據庫表、yaml、toml 等數據結構轉 strcut 的需求。這時,我們可以根據字段名和數據類型來將這些數據結構,手動地填充至 Go 代碼的 strcut 。但當數據字段很多時,這種方式不但耗時耗力,還容易出現一些低級錯誤。
針對以上情況,本文推薦幾個開箱即用的開發利器,幫助 Gopher 解放雙手,拯救時間。
JSON-to-Go
JSON-to-Go 是一個將 json 數據轉換為 Go 結構體的在線服務。
地址:https://mholt.github.io/json-to-go/
TOML-to-Go
TOML-to-Go 是一個將 toml 數據轉換為 Go 結構體的在線服務。
地址:https://xuri.me/toml-to-go/
YAML-to-Go
TOML-to-Go 是一個將 yaml 數據轉換為 Go 結構體的在線服務。
地址:https://zhwt.github.io/yaml-to-go/
curl-to-Go
curl-to-Go 是一個將 curl 請求命令和數據格式轉換為 Go 相關代碼的在線服務。
地址:https://mholt.github.io/curl-to-go/
sql2struct
sql2struct 是一款根據 sql 語句自動生成 Go 結構體的 chrome 插件。
地址:https://github.com/idoubi/sql2struct
它的安裝非常簡單,根據上面地址中給出的使用步驟即可。
當我們需要對某個數據表,例如小菜刀本地數據庫中的 rent 庫,執行以下命令,拿到 SQL 定義語句。
- mysql> show create table rent\G;
- *************************** 1. row ***************************
- Table: rent
- Create Table: CREATE TABLE `rent` (
- `name` varchar(100) DEFAULT NULL,
- `price` int(10) DEFAULT NULL,
- `area` varchar(60) DEFAULT NULL,
- `number` varchar(60) DEFAULT NULL,
- `structure` varchar(60) DEFAULT NULL,
- `pay` varchar(60) DEFAULT NULL,
- `orientaion` varchar(60) DEFAULT NULL,
- `floor` varchar(60) DEFAULT NULL,
- `region` varchar(100) DEFAULT NULL,
- `metro` varchar(60) DEFAULT NULL,
- `url` varchar(255) DEFAULT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
- 1 row in set (0.00 sec)
- ERROR:
- No query specified
打開 sql2struct 插件,將 SQL 建表語句置入,即可得到對應的 Go 代碼 struct 信息。
當然,我們還可以通過 options 選擇多種字段標簽,例如上例中,選擇的是 gorm 和 json。