name: Настройка роутинга

sort: 2

Настройки роутинга проекта

Итак, мы создали проект BeeGo и запустили его в предыдущем разделе. Но как он работает? Давайте начнём обзор со стартового файла (main.go).

  1. package main
  2. import (
  3. _ "quickstart/routers"
  4. "github.com/astaxie/beego"
  5. )
  6. func main() {
  7. beego.Run()
  8. }

Также сейчас нам необходимо рассмотреть файл routers/router.go

  1. package routers
  2. import (
  3. "quickstart/controllers"
  4. "github.com/astaxie/beego"
  5. )
  6. func init() {
  7. beego.Router("/", &controllers.MainController{})
  8. }

Вы можете увидеть две простых строчки. Одна регистрирует роутер вызовом beego.Router, другая - beego.Run. Что эти строчки делают?

  1. В действительности beego.Router регистрирует адрес. Первый аргумент - URI запроса, и в данном случае это /, что означает, что запрос не имеет какого-либо URI. Второй аргумент - контроллер, который будет обрабатывать запросы с этого URI. Мы также можем зарегестрировать роутер таким образом:

    1. beego.Router("/user", &controllers.UserController{})

    Тогда пользователь может посетить /user и обработать запрос в контроллере UserController. Это наши простые роутеры. Для большей информации об использовании роутеров посетите настройки роутера beego.

  2. Мы только что увидели, что после выполнения beego.Run прослушивается порт. Эта команда действительно произвела много работы:

    • Парсинг конфигурационного файла

      BeeGo парсит файл конфигурации app.conf в папке conf. Здесь мы можем сменить порт, включить сессию и сменить имя приложения, настроив нужным образом файл конфигурации.

      • Включение сессии BeeGo будет включать и выключать сессию с помощью настроек в файле конфигурации.

      • Обработка шаблонов BeeGo обработает шаблоны в папке views, когда запустится, чтобы избежать их многократной обработки, что, несомненно, более эффективно.

    • Запуск модуля супервизора BeeGo имеет очень крутой модуль, который называется модулем супервизора. Мы можем обнаружить QPS, cpu, память, GC, goroutine, потоки, посетив порт 8088.

    • Прослушивание служебного порта Последнее, что делает BeeGo - прослушивание http-запросов на порту 8080. Это делается преимущественно с помощью goroutines вызовом внутри их ListenAndServe.

    • После запуска всего этого, наш сервер будет использоваться для обслуживания входящих запросов от порта 8080 и для надзора из порта 8088.

Мы рассмотрели процесс целого запуска приложения на BeeGo и некоторые другие функции. Давайте посмотрим, как работают контроллеры.