Skip to content

juneman/ssss

This branch is 110 commits behind tryor/trygo:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 18, 2014
617557f · Apr 18, 2014

History

12 Commits
Apr 10, 2013
Apr 10, 2013
Apr 18, 2014
Apr 10, 2013
Apr 18, 2014
Apr 18, 2014
Apr 18, 2014
Apr 18, 2014
Apr 30, 2013

Repository files navigation

SSSS

======= ssss 是基于Golang的http、web服务框架。部份思路和源码来自于github.com/astaxie/beego。此框架的目标并不是想做一个大而全的web容器,它主要用于开发底层高性能高可靠性的http服务。支持如下特性:MVC,类型内方法路由,JSON/JSON(JQueryCallback)/XML服务,模板,静态文件输出。暂时不支持会话管理模块和正则路由。

ssss HTTP and WEB services of framework for Golang。It is mainly used to develop the underlying HTTP service,Support feature:MVC,Methods the routing,JSON/JSON(JQueryCallback)/XML service,template,Static file output。Temporarily does not support session management module and a regular routing。

ssss is licensed under the Apache Licence, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html).

Installation

============ To install:

go get -u github.com/trygo/ssss

Quick Start

============ Here is the canonical "Hello, world" example app for ssss:

package main

import (
	"github.com/trygo/ssss"
)

type MainController struct {
	ssss.Controller
}

func (this *MainController) Hello() {
	this.RenderText("hello world")
}

func (this *MainController) Hi() {
	this.RenderHtml("<html><body>Hi</body></html>")
}

func main() {
	ssss.Register("GET|POST", "/", &MainController{}, "Hello")
	ssss.Register("GET|POST", "/hi", &MainController{}, "Hi")
	
	var cfg ssss.Config
	//cfg.HttpAddr = "0.0.0.0"
	cfg.HttpPort = 8080
	ssss.Run(&cfg)
}

Router

============

ssss.Register("GET", "/f1", &MainController{}, "Func1")
ssss.Register("POST", "/f2", &MainController{}, "Func2")
ssss.Register("GET|POST", "/f3", &MainController{}, "Func3")
ssss.Register("PUT", "/f4", &MainController{}, "Func4")
ssss.Register("GET|POST", "/admin/login", &AdminController{}, "Login")
ssss.Register("*", "/admin/index", &AdminController{}, "Index")

Static files

============ ssss.SetStaticPath("/", "static/webroot/")

Render

============

All the default render:

func (c *Controller) Render(contentType string, data []byte)
func (c *Controller) RenderHtml(content string)
func (c *Controller) RenderText(content string)
func (c *Controller) RenderJson(data interface{})
func (c *Controller) RenderJQueryCallback(jsoncallback string, data interface{})
func (c *Controller) RenderXml(data interface{})
func (c *Controller) RenderTemplate(contentType ...string)

View / Template

============

template view path set

var cfg ssss.Config
cfg.TemplatePath = "static/templates"

template names

ssss will find the template from cfg.TemplatePath. the file is set by user like:

c.TplNames = "admin/add.tpl"

then ssss will find the file in the path:static/templates/admin/add.tpl

if you don't set TplNames,sss will find like this:

c.TplNames = c.ChildName + "/" + c.MethodName + "." + c.TplExt

render template

c.TplNames = "admin/add.tpl"
c.Data["data"] = you data
c.RenderTemplate()

Config

============

type Config struct {
	HttpAddr     string
	HttpPort     int
	UseFcgi      bool
	RecoverPanic bool
	RunMode      int8 //0=prod,1=dev
	TemplatePath string
}

const RUNMODE_PROD int8 = 0
const RUNMODE_DEV int8 = 1

Thank End

============

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published