golang 介面開發入門01- 從0開始構建項目

來源:互聯網
上載者:User

標籤:json序列化   網路   欄位名   blob   處理   參考   登入密碼   不同   操作   

之前寫了兩篇golang開發入門文章,太過潦草,趕著10.1 放假的前夕,想著還是要認真對待自己寫的東西,記錄學習的點滴,以後也許會忘了現在學習的東西,但是好歹留下一些文字,同時也希望能給花時間讀我部落格的人真正有些協助。

前期準備

因為golang 之前斷斷續續學過一點,所以現在就以開發一個使用者管理這樣簡單的功能入手。如果你現在在看我的這篇文章,你需要要具備以下知識點

  • 1、golang 開發環境搭建
  • 2、golang 的基本文法
  • 3、物件導向和mvc開發思想
搭建項目

我使用eclipse作為開發工具,項目目錄按照傳統的mvc分層思想進行構建,結構如下:

src domain     -- 領域,其實就是用struct來表示一些對象 store      -- 儲存層,主要操作資料庫 web        -- 介面層,對外提供提供者     main.go    -- 入口類

細心的朋友可能已經發現了,上面的結構少了業務層,這是因為剛開始我的使用者管理只是簡單的CRUD(增刪改查)操作,沒有複雜的邏輯,之後如果涉及更複雜的業務,會再添加業務處理層。我已經將代碼上傳到了github上,你可以點擊hiuser訪問,在項目src/v1.0.learn 目錄下可以看到本篇文章涉及的所有代碼,如果你發現了代碼有任何不合理的地方,歡迎向我提出,在此先行謝過。

需求與設計

我假設的需求情境是這樣的:現在有一個線上的檔案瀏覽系統,這個系統不會有太多的使用使用者,它的功能主要就是將伺服器本地的一個檔案目錄映射到網路上,不同的使用者登入後,都給他在目錄下分配一個子目錄,使用者在這個子目錄上可以上傳下載檔案,起到了一個簡易的網盤作用。golang實際上有一個非常不錯的開源項目已經實現了上述的需求,而且功能更加強大,它就是filebrower,本篇文章以及後續的更新,也是參考這個項目來學習的。

本章並不考慮需求中檔案相關的部分,而是單獨來看使用者,首先這個系統會有一個管理員,他至少應該具有以下功能:

  • 1、他能能夠建立其他人員,並且給他指定檔案子目錄;
  • 2、他能夠查詢所有人員及人員對應的目錄;
  • 3、他可以修改人員對應的子目錄;
  • 4、他可以刪除人員;

不管是管理員還是普通使用者,都應該可以:

  • 5、登入系統;
  • 6、登入後修改密碼;

根據上述的幾點需求,來設計一套restful介面,關於登入會在之後的文章中進行完善,本章實現使用者的CRUD操作。詳細的設計文檔,可以到github上查看,地址:介面文檔

開發實現

本系列使用boltdb資料庫來儲存使用者的資訊,關於boltdb的使用,我將在下一章中詳細介紹;而對於介面的實現,先不使用任何架構,直接使用golang內建的http模組。

定義使用者

在domain目錄下建立個users.go檔案,該檔案來定義使用者的詳細資料;

// 使用者實體type User struct {    // 主鍵    Id    int    `json:"id"`    Login string `json:"login"`    // 使用者登入名稱    Name string `json:"name"`    // 登入密碼    Password string `json:"-"`    Path     string `json:"path"`}

通過golang的struct(結構體)來定義使用者物件,欄位後面json:xxx標籤的目的是自訂json序列化之後如何展示,通過json:login標識後最終介面返回的欄位名稱將會是login而不是預設的Login;通過添加json:"-",介面將不會將密碼也一塊返回。

儲存層

golang 介面開發入門01- 從0開始構建項目

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.