改进Service Response命名

This commit is contained in:
John
2018-01-02 16:35:13 +08:00
parent 76efde479a
commit 7279eb7687
9 changed files with 27 additions and 26 deletions

View File

@ -14,12 +14,12 @@ import (
// 控制器基类
type Controller struct {
Server *ghttp.Server // Web Server对象
Request *ghttp.Request // 请求数据对象
Response *ghttp.ServerResponse // 返回数据对象
Cookie *ghttp.Cookie // COOKIE操作对象
Session *ghttp.Session // SESSION操作对象
View *View // 视图对象
Request *ghttp.Request // 请求数据对象
Response *ghttp.Response // 返回数据对象(r.Response)
Server *ghttp.Server // Web Server对象(r.Server)
Cookie *ghttp.Cookie // COOKIE操作对象
Session *ghttp.Session // SESSION操作对象
View *View // 视图对象
}
// 控制器初始化接口方法

View File

@ -20,11 +20,11 @@ type View struct {
mu sync.RWMutex // 并发互斥锁
view *gview.View // 底层视图对象
data map[string]interface{} // 视图数据
response *ghttp.ServerResponse // 数据返回对象
response *ghttp.Response // 数据返回对象
}
// 创建一个MVC请求中使用的视图对象
func NewView(w *ghttp.ServerResponse) *View {
func NewView(w *ghttp.Response) *View {
return &View{
view : gins.View(),
data : make(map[string]interface{}),

View File

@ -19,11 +19,6 @@ type Client struct {
http.Client
}
// 客户端请求结果对象
type ClientResponse struct {
http.Response
}
// http客户端对象指针
func NewClient() (*Client) {
return &Client{}

View File

@ -8,8 +8,14 @@ package ghttp
import (
"io/ioutil"
"net/http"
)
// 客户端请求结果对象
type ClientResponse struct {
http.Response
}
// 获取返回的数据
func (r *ClientResponse) ReadAll() []byte {
body, err := ioutil.ReadAll(r.Body)

View File

@ -7,7 +7,6 @@
package ghttp
// 控制器接口
type Controller interface {
Init(*Request)

View File

@ -22,7 +22,7 @@ type Request struct {
Server *Server // 请求关联的服务器对象
Cookie *Cookie // 与当前请求绑定的Cookie对象(并发安全)
Session *Session // 与当前请求绑定的Session对象(并发安全)
Response *ServerResponse // 对应请求的返回数据操作对象
Response *Response // 对应请求的返回数据操作对象
}
// 获得指定名称的get参数列表

View File

@ -14,7 +14,7 @@ import (
)
// 服务端请求返回对象
type ServerResponse struct {
type Response struct {
http.ResponseWriter
bufmu sync.RWMutex // 缓冲区互斥锁
buffer []byte // 每个请求的返回数据缓冲区
@ -28,21 +28,21 @@ type ResponseJson struct {
}
// 返回信息(byte)
func (r *ServerResponse) Write(content []byte) {
func (r *Response) Write(content []byte) {
r.bufmu.Lock()
defer r.bufmu.Unlock()
r.buffer = append(r.buffer, content...)
}
// 返回信息(string)
func (r *ServerResponse) WriteString(content string) {
func (r *Response) WriteString(content string) {
r.bufmu.Lock()
defer r.bufmu.Unlock()
r.buffer = append(r.buffer, content...)
}
// 返回固定格式的json
func (r *ServerResponse) WriteJson(result int, message string, data []byte) error {
func (r *Response) WriteJson(result int, message string, data []byte) error {
r.Header().Set("Content-Type", "application/json")
r.bufmu.Lock()
defer r.bufmu.Unlock()
@ -55,26 +55,26 @@ func (r *ServerResponse) WriteJson(result int, message string, data []byte) erro
}
// 返回内容编码
func (r *ServerResponse) WriteHeaderEncoding(encoding string) {
func (r *Response) WriteHeaderEncoding(encoding string) {
r.Header().Set("Content-Type", "text/plain; charset=" + encoding)
}
// 获取当前缓冲区中的数据
func (r *ServerResponse) Buffer() []byte {
func (r *Response) Buffer() []byte {
r.bufmu.RLock()
defer r.bufmu.RUnlock()
return r.buffer
}
// 清空缓冲区内容
func (r *ServerResponse) ClearBuffer() {
func (r *Response) ClearBuffer() {
r.bufmu.Lock()
defer r.bufmu.Unlock()
r.buffer = make([]byte, 0)
}
// 输出缓冲区数据到客户端
func (r *ServerResponse) OutputBuffer() {
func (r *Response) OutputBuffer() {
r.bufmu.Lock()
defer r.bufmu.Unlock()
if len(r.buffer) > 0 {

View File

@ -29,8 +29,8 @@ type Cookie struct {
mu sync.RWMutex // 并发安全互斥锁
data map[string]CookieItem // 数据项
domain string // 默认的cookie域名
request *Request // 所属HTTP请求对象
response *ServerResponse // 所属HTTP返回对象
request *Request // 所属HTTP请求对象
response *Response // 所属HTTP返回对象
}
// cookie项

View File

@ -39,8 +39,9 @@ func (s *Server)handleRequest(w http.ResponseWriter, r *http.Request) {
// 构造请求参数对象
request := &Request{
Id : s.idgen.Int(),
Server : s,
Request : *r,
Response : &ServerResponse {
Response : &Response {
ResponseWriter : w,
},
}