幾個(gè)解放雙手的 Go 開發(fā)利器
本文轉(zhuǎn)載自微信公眾號(hào)「Golang技術(shù)分享」,作者機(jī)器鈴砍菜刀。轉(zhuǎn)載本文請(qǐng)聯(lián)系Golang技術(shù)分享公眾號(hào)。
Go 開發(fā)中,我們會(huì)構(gòu)造各種 struct 對(duì)象,經(jīng)常會(huì)有 json、數(shù)據(jù)庫表、yaml、toml 等數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn) strcut 的需求。這時(shí),我們可以根據(jù)字段名和數(shù)據(jù)類型來將這些數(shù)據(jù)結(jié)構(gòu),手動(dòng)地填充至 Go 代碼的 strcut 。但當(dāng)數(shù)據(jù)字段很多時(shí),這種方式不但耗時(shí)耗力,還容易出現(xiàn)一些低級(jí)錯(cuò)誤。
針對(duì)以上情況,本文推薦幾個(gè)開箱即用的開發(fā)利器,幫助 Gopher 解放雙手,拯救時(shí)間。
JSON-to-Go
JSON-to-Go 是一個(gè)將 json 數(shù)據(jù)轉(zhuǎn)換為 Go 結(jié)構(gòu)體的在線服務(wù)。
地址:https://mholt.github.io/json-to-go/
TOML-to-Go
TOML-to-Go 是一個(gè)將 toml 數(shù)據(jù)轉(zhuǎn)換為 Go 結(jié)構(gòu)體的在線服務(wù)。
地址:https://xuri.me/toml-to-go/
YAML-to-Go
TOML-to-Go 是一個(gè)將 yaml 數(shù)據(jù)轉(zhuǎn)換為 Go 結(jié)構(gòu)體的在線服務(wù)。
地址:https://zhwt.github.io/yaml-to-go/
curl-to-Go
curl-to-Go 是一個(gè)將 curl 請(qǐng)求命令和數(shù)據(jù)格式轉(zhuǎn)換為 Go 相關(guān)代碼的在線服務(wù)。
地址:https://mholt.github.io/curl-to-go/
sql2struct
sql2struct 是一款根據(jù) sql 語句自動(dòng)生成 Go 結(jié)構(gòu)體的 chrome 插件。
地址:https://github.com/idoubi/sql2struct
它的安裝非常簡單,根據(jù)上面地址中給出的使用步驟即可。
當(dāng)我們需要對(duì)某個(gè)數(shù)據(jù)表,例如小菜刀本地?cái)?shù)據(jù)庫中的 rent 庫,執(zhí)行以下命令,拿到 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 建表語句置入,即可得到對(duì)應(yīng)的 Go 代碼 struct 信息。
當(dāng)然,我們還可以通過 options 選擇多種字段標(biāo)簽,例如上例中,選擇的是 gorm 和 json。