name: bee tool usage

sort: 2

bee aracına giriş

bee aracı hızlı Beego geliştirmesi yapmak içindir. bee aracı ile kolayca

  • Beego uygulamaları oluşturabilirsiniz
  • Otomatik derleme ve yenileme (auto compile & reload) yapabilirsiniz
  • Geliştirme, test ve deploy yapabilirsiniz

bee aracının kurulumu

Aşağıdaki komutu çalıştırarak bee aracını yükleyiniz :

  1. go get github.com/beego/bee

bee, sabit olarak GOPATH/bin dizininde yüklenecektir.

Not : bee komutunun çağrıldığında çalışması için GOPATH/bin dizininin sistem PATH’inizde ekli olması gerekmektedir.

bee aracı komutları

Komut satırına bee yazdığınızda aşağıdaki mesaj görüntülenecektir :

  1. bee is a tool for managing Beego framework.
  2. Usage:
  3. bee command [arguments]
  4. The commands are:
  5. new Create a Beego application
  6. run run the app and start a Web server for development
  7. pack Compress a Beego project into a single file
  8. api create an API Beego application
  9. bale packs non-Go files to Go source files
  10. version show the bee, Beego and Go version
  11. generate source code generator
  12. migrate run database migrations

Komut : new

new komutu yeni bir web projesi oluşturur. bee new <proje adı> komutunu $GOPATH/src dizini altında çalıştırarak yeni bir Beego projesi oluşturabilirsiniz. Bu komut sabit olarak aşağıdaki proje klasörlerini ve dosyalarını oluşturur :

  1. bee new myproject
  2. [INFO] Creating application...
  3. /gopath/src/myproject/
  4. /gopath/src/myproject/conf/
  5. /gopath/src/myproject/controllers/
  6. /gopath/src/myproject/models/
  7. /gopath/src/myproject/static/
  8. /gopath/src/myproject/static/js/
  9. /gopath/src/myproject/static/css/
  10. /gopath/src/myproject/static/img/
  11. /gopath/src/myproject/views/
  12. /gopath/src/myproject/conf/app.conf
  13. /gopath/src/myproject/controllers/default.go
  14. /gopath/src/myproject/views/index.tpl
  15. /gopath/src/myproject/main.go
  16. 13-11-25 09:50:39 [SUCC] New application successfully created!
  1. myproject
  2. ├── conf
  3. └── app.conf
  4. ├── controllers
  5. └── default.go
  6. ├── main.go
  7. ├── models
  8. ├── routers
  9. └── router.go
  10. ├── static
  11. ├── css
  12. ├── img
  13. └── js
  14. ├── tests
  15. └── default_test.go
  16. └── views
  17. └── index.tpl
  18. 8 directories, 4 files

Komut : api

new komutu yeni bir web uygulaması oluşturmak içindi. api komutu ise yeni bir API uyguluması oluşturmak içindir.

bee api <proje adı> komutu çalıştığında sonuç aşağıdaki gibi olur :

  1. bee api apiproject
  2. create app folder: /gopath/src/apiproject
  3. create conf: /gopath/src/apiproject/conf
  4. create controllers: /gopath/src/apiproject/controllers
  5. create models: /gopath/src/apiproject/models
  6. create tests: /gopath/src/apiproject/tests
  7. create conf app.conf: /gopath/src/apiproject/conf/app.conf
  8. create controllers default.go: /gopath/src/apiproject/controllers/default.go
  9. create tests default.go: /gopath/src/apiproject/tests/default_test.go
  10. create models object.go: /gopath/src/apiproject/models/object.go
  11. create main.go: /gopath/src/apiproject/main.go

Oluşturduğunuz yeni API uygulamasının proje yapısı aşağıdaki gibi olacaktır :

  1. apiproject
  2. ├── conf
  3. └── app.conf
  4. ├── controllers
  5. └── object.go
  6. └── user.go
  7. ├── docs
  8. └── doc.go
  9. ├── main.go
  10. ├── models
  11. └── object.go
  12. └── user.go
  13. ├── routers
  14. └── router.go
  15. └── tests
  16. └── default_test.go

Bu proje yapısıyla bee new <proje adı> komutuyla oluşturduğunuz projenin farkına bakınız.

API uygulamasının static ve views klasörlerine sahip olmadığını göreceksiniz.

Ayrıca mevcutta bir veritabanınız varsa Beego veritabanı bağlantınız üzerinden uyumlu model ve controller’ları oluşturabilir.

Örnek :

bee api [appname] [-tables=""] [-driver=mysql] [-conn=root:@tcp(127.0.0.1:3306)/test]

Komut : run

bee run komutu inotify kullanarak Beego projesinin dosya sistemini denetler ve çalışmasını sağlar. Beego proje klasörleri içerisinde yapılan değişiklikler otomatik olarak derlenir (autocompile) ve görüntülenir.

bee run komutu çalıştırıldığında komut satırında aşağıdaki gibi bir sonuç görünecektir :

  1. 13-11-25 09:53:04 [INFO] Uses 'myproject' as 'appname'
  2. 13-11-25 09:53:04 [INFO] Initializing watcher...
  3. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/controllers)
  4. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/models)
  5. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject)
  6. 13-11-25 09:53:04 [INFO] Start building...
  7. 13-11-25 09:53:16 [SUCC] Build was successful
  8. 13-11-25 09:53:16 [INFO] Restarting myproject ...
  9. 13-11-25 09:53:16 [INFO] ./myproject is running...

Sonrasında uygulamanız çalışırken http://localhost:8080/ adresini ziyaret ettiğinizde sonuç aşağıdaki gibi olacaktır :

Eğer uygulama çalışırken controllers klasörü içerisindeki default.go dosyasını değiştirirseniz komut satırı çıktısı şu şekilde olacaktır :

  1. 13-11-25 10:11:20 [EVEN] "/gopath/src/myproject/controllers/default.go": DELETE|MODIFY
  2. 13-11-25 10:11:20 [INFO] Start building...
  3. 13-11-25 10:11:20 [SKIP] "/gopath/src/myproject/controllers/default.go": CREATE
  4. 13-11-25 10:11:23 [SKIP] "/gopath/src/myproject/controllers/default.go": MODIFY
  5. 13-11-25 10:11:23 [SUCC] Build was successful
  6. 13-11-25 10:11:23 [INFO] Restarting myproject ...
  7. 13-11-25 10:11:23 [INFO] ./myproject is running...

Sonrasında yaptığınız değişikleri görmek için tarayıcınızı yenileyebilirsiniz.

Komut : pack

pack komutu proje dosyalarınızı sıkıştırarak tek dosya haline getirir. Sıkıştırılmış zip dosyasını sunucunuza yükleyip çıkardıktan sonra deploy işlemini yapabilirsiniz.

  1. bee pack
  2. app path: /gopath/src/apiproject
  3. GOOS darwin GOARCH amd64
  4. build apiproject
  5. build success
  6. exclude prefix:
  7. exclude suffix: .go:.DS_Store:.tmp
  8. file write to `/gopath/src/apiproject/apiproject.tar.gz`

Sıkıştırılmış dosya, siz komutu çalıştırdıktan sonra proje klasörü içinde olacaktır :

  1. rwxr-xr-x 1 astaxie staff 8995376 11 25 22:46 apiproject
  2. -rw-r--r-- 1 astaxie staff 2240288 11 25 22:58 apiproject.tar.gz
  3. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 conf
  4. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 controllers
  5. -rw-r--r-- 1 astaxie staff 509 11 25 22:31 main.go
  6. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 models
  7. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 tests

Komut : bale

Bu komut şu an için sadece geliştirici takım için erişilebilir durumdadır. Projedeki tüm statik dosyaları tek binary dosya haline getirir. Deployment yaparken js,css,resim ve view tipindeki dosyaları ayrıca sunucuya taşımanız gerekmez. Bu dosyalar uygulama başladığında üzerlerine yazılamayacak şekilde kendi kendilerini çıkarırlar (self-extracting).

Komut : version

Bu komut bee, beego, ve go versiyonlarını görüntüler :

  1. $ bee version
  2. bee :1.2.2
  3. Beego :1.4.2
  4. Go :go version go1.3.3 darwin/amd64

Komut : generate

Bu komut controller dosyaları içerisindeki fonksiyonlara bakarak router’lar oluşturur.

  1. bee generate scaffold [scaffoldname] [-fields=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  2. The generate scaffold command will do a number of things for you.
  3. -fields: a list of table fields. Format: field:type, ...
  4. -driver: [mysql | postgres | sqlite], the default is mysql
  5. -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
  6. example: bee generate scaffold post -fields="title:string,body:text"
  7. bee generate model [modelname] [-fields=""]
  8. generate RESTful model based on fields
  9. -fields: a list of table fields. Format: field:type, ...
  10. bee generate controller [controllerfile]
  11. generate RESTful controllers
  12. bee generate view [viewpath]
  13. generate CRUD view in viewpath
  14. bee generate migration [migrationfile] [-fields=""]
  15. generate migration file for making database schema update
  16. -fields: a list of table fields. Format: field:type, ...
  17. bee generate docs
  18. generate swagger doc file
  19. bee generate test [routerfile]
  20. generate testcase
  21. bee generate appcode [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-level=3]
  22. generate appcode based on an existing database
  23. -tables: a list of table names separated by ',', default is empty, indicating all tables
  24. -driver: [mysql | postgres | sqlite], the default is mysql
  25. -conn: the connection string used by the driver.
  26. default for mysql: root:@tcp(127.0.0.1:3306)/test
  27. default for postgres: postgres://postgres:postgres@127.0.0.1:5432/postgres
  28. -level: [1 | 2 | 3], 1 = models; 2 = models,controllers; 3 = models,controllers,router

Komut : migrate

Bu komut database migration scriptlerini çalıştırır.

  1. bee migrate [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  2. run all outstanding migrations
  3. -driver: [mysql | postgresql | sqlite], the default is mysql
  4. -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
  5. bee migrate rollback [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  6. rollback the last migration operation
  7. -driver: [mysql | postgresql | sqlite], the default is mysql
  8. -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
  9. bee migrate reset [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  10. rollback all migrations
  11. -driver: [mysql | postgresql | sqlite], the default is mysql
  12. -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
  13. bee migrate refresh [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  14. rollback all migrations and run them all again
  15. -driver: [mysql | postgresql | sqlite], the default is mysql
  16. -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test

bee aracı konfigürasyonu

bee.json, bee aracı kaynak kodu klasörünün altında olan Beego konfigürasyon dosyasıdır. Bu dosya hala geliştirilmektedir fakat bazı seçenekler kullanıma hazırdır :

  • "version": 0:
    Dosyanın versiyonu,uyumlu olmayan format versiyon kontrolü.
  • "go_install": false:
    Eğer tüm pathleri projeye dahil ettiyseniz (örn : github.com/user/repo/subpkg) go install komutunu çalıştırarak derlenme sürecinizi hızlandırabilirsiniz.
  • "watch_ext": []:
    Diğer dosya uzantılarını watch (değişiklik izleme) moduna ekler. (default olarak sadece .go uzantılı dosyalar watch modundadır). Örnek parametreler : .ini, .conf vb’dir.
  • "dir_structure":{}:
    Eğer klasör isimleriniz MVC klasik adlandırmasıyla aynı değilse bu seçenek ile değişiklik yapabilirsiniz.
  • "cmd_args": []:
    Her çalışma durumu için yeni parametreler girmenizi sağlar.
  • "envs": []:
    Her çalışma durumu için sistem değişkenlere (enviroment variables) değer atamanızı sağlar.