本文整理汇总了Golang中github.com/gocraft/web.ResponseWriter类的典型用法代码示例。如果您正苦于以下问题:Golang ResponseWriter类的具体用法?Golang ResponseWriter怎么用?Golang ResponseWriter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ResponseWriter类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: PostRecipe
func (c *Context) PostRecipe(rw web.ResponseWriter, req *web.Request) {
var recipe models.Recipe
body, err := getPostedBody(req)
if err != nil {
panic(err)
return
}
err = json.Unmarshal(body, &recipe)
if err != nil {
handleUnmarshalError(rw, err)
return
}
id, err := (*c).api.PostRecipe(&recipe)
if err != nil {
panic(err)
return
}
var result models.RecipeId
result.Id = id
result.Name = recipe.Name
rw.WriteHeader(http.StatusCreated)
rw.Header().Set("Content-Type", "application/json; charset=UTF-8")
json.NewEncoder(rw).Encode(result)
}
开发者ID:ntfrnzn,项目名称:bakingdish,代码行数:30,代码来源:router.go
示例2: generateToken
func (c *context) generateToken(rw web.ResponseWriter, req *web.Request, next web.NextMiddlewareFunc) {
if req.Header.Get("X-Docker-Token") == "true" {
a, ok := accessMap[req.Method]
if !ok {
http.Error(rw, "", http.StatusMethodNotAllowed)
return
}
sig, err := runningContext.TokenAuth.CreateToken(&handler.AuthRequest{
Name: fmt.Sprintf("%v/%v", c.namespace, c.repo),
Actions: []string{a.name},
Service: runningContext.TokenAuth.Service,
})
if !ok {
http.Error(rw, err.Error(), http.StatusInternalServerError)
return
}
t := fmt.Sprintf(`signature=%v,repository="%v/%v",access=%v`, sig, c.namespace, c.repo, a.name)
rw.Header().Set("X-Docker-Endpoints", runningContext.Endpoints)
rw.Header().Set("WWW-Authenticate", "Token "+t)
rw.Header().Set("X-Docker-Token", t)
}
next(rw, req)
}
开发者ID:frank12268,项目名称:docker-wicket,代码行数:31,代码来源:handler.go
示例3: Log
func (c *Context) Log(rw web.ResponseWriter, r *web.Request, next web.NextMiddlewareFunc) {
c.Job = stream.NewJob(r.RoutePath())
id, err := uuid.NewV4()
if err == nil {
c.Job.KeyValue("request-id", id.String())
}
path := r.URL.Path
c.Job.EventKv("api.request", health.Kvs{"path": path})
next(rw, r)
code := rw.StatusCode()
kvs := health.Kvs{
"code": fmt.Sprint(code),
"path": path,
}
// Map HTTP status code to category.
var status health.CompletionStatus
if c.Panic {
status = health.Panic
} else if code < 400 {
status = health.Success
} else if code == 422 {
status = health.ValidationError
} else if code < 500 {
status = health.Junk // 404, 401
} else {
status = health.Error
}
c.Job.CompleteKv(status, kvs)
}
开发者ID:grepory,项目名称:awsthingy,代码行数:34,代码来源:server.go
示例4: CounterByCodeEventsHandler
// Get counter events in a optionally given time range
// Query parameters: start,end
func (c *Context) CounterByCodeEventsHandler(rw web.ResponseWriter, req *web.Request) {
code := parseStringPathParameter(req, "code")
var counter orm.Counter
db.Where(&orm.Counter{Code: code}).First(&counter)
if counter.ID == 0 {
rw.WriteHeader(http.StatusNotFound)
rw.Write([]byte("Counter not found"))
return
}
start, err := c.parseUintQueryParameter(rw, "start")
if err != nil {
return
}
end, err := c.parseUintQueryParameter(rw, "end")
if err != nil {
return
}
var counterEvents []orm.CounterEvent
orm.GetOrderedWindowedQuery(db, "counter_id", counter.ID, start, end).Find(&counterEvents)
lastEvent := orm.NewLastCounterEvent(counter)
if lastEvent.Timestamp > end {
counterEvents = append(counterEvents, lastEvent)
}
marshal(rw, counterEvents)
}
开发者ID:b00lduck,项目名称:raspberry-energy-monitor,代码行数:34,代码来源:counter.go
示例5: SearchRecipe
func (c *Context) SearchRecipe(rw web.ResponseWriter, req *web.Request) {
body, err := getPostedBody(req)
if err != nil {
panic(err)
return
}
var query models.Query
err = json.Unmarshal(body, &query)
if err != nil {
handleUnmarshalError(rw, err)
return
}
results, err := (*c).api.SearchRecipe(&query)
if err != nil {
rw.WriteHeader(http.StatusInternalServerError)
panic(err)
} else {
rw.Header().Set("Content-Type", "application/json")
json.NewEncoder(rw).Encode(results) // prefaces with {"Offset": 0} ??
}
}
开发者ID:ntfrnzn,项目名称:bakingdish,代码行数:25,代码来源:router.go
示例6: createKeyValue
// creatKeyValue creates a new book in the collection
func (c *Context) createKeyValue(w web.ResponseWriter, r *web.Request) {
document, result, err := validateRequestData(
"file://"+schemaDir+"/keyvalue.post.body.json",
r,
)
// lazy output & not setting headers
if err != nil || !result.Valid() {
w.Header()
fmt.Fprintf(w, "The document is not valid. see errors :\n")
if result != nil {
for _, desc := range result.Errors() {
fmt.Fprintf(w, "- %s\n", desc)
}
} else {
fmt.Fprint(w, "The document wasn't valid JSON.")
}
return
}
fmt.Fprint(w, "success", "\n")
fmt.Fprint(w, document, "\n")
fmt.Fprint(w, result, "\n")
}
开发者ID:gtrevg,项目名称:golang-rest-raml-validation,代码行数:30,代码来源:main.go
示例7: UserRequired
func (c *Context) UserRequired(rw web.ResponseWriter, req *web.Request, next web.NextMiddlewareFunc) {
var userInfo map[string]interface{}
if req.URL.Path == "/healthcheck" {
next(rw, req)
return
}
if req.URL.Path == "/signup" {
next(rw, req)
return
}
auth := req.Header.Get("Authorization")
if !strings.HasPrefix(strings.ToLower(auth), "bearer ") {
rw.WriteHeader(http.StatusUnauthorized)
return
}
token := auth[7:]
client := &http.Client{}
authReq, err := http.NewRequest("GET", "https://meshblu.octoblu.com/v2/whoami", nil)
authReq.Header.Add("Authorization", "Bearer "+token)
resp, err := client.Do(authReq)
if err != nil {
panic(err)
return
}
if err := json.NewDecoder(resp.Body).Decode(&userInfo); err != nil {
panic(err)
}
c.Token = token
c.UserInfo = userInfo
next(rw, req)
}
开发者ID:crossyio,项目名称:crossyinfo-service,代码行数:35,代码来源:server.go
示例8: HealthMiddleware
func (c *apiContext) HealthMiddleware(rw web.ResponseWriter, r *web.Request, next web.NextMiddlewareFunc) {
c.Job = c.hd.stream.NewJob(r.RoutePath())
path := r.URL.Path
c.EventKv("starting_request", health.Kvs{"path": path})
next(rw, r)
code := rw.StatusCode()
kvs := health.Kvs{
"code": fmt.Sprint(code),
"path": path,
}
// Map HTTP status code to category.
var status health.CompletionStatus
// if c.Panic {
// status = health.Panic
// } else
if code < 400 {
status = health.Success
} else if code == 422 {
status = health.ValidationError
} else if code < 500 {
status = health.Junk // 404, 401
} else {
status = health.Error
}
c.CompleteKv(status, kvs)
}
开发者ID:grepory,项目名称:awsthingy,代码行数:30,代码来源:api.go
示例9: ErrorHandler
// TODO Should rewrite to send a 'fail' or an 'error'
func ErrorHandler(rw web.ResponseWriter, err error) {
if rw.Written() {
panic(fmt.Sprintf("Data already started to be sent to the client and i had an error: %s", err))
}
rw.WriteHeader(http.StatusBadRequest)
fmt.Fprintf(rw, "{\"Error\": \"%s\"}", err)
}
开发者ID:brettbates,项目名称:json-binding,代码行数:8,代码来源:request.go
示例10: ReturnJSON
func ReturnJSON(rw web.ResponseWriter, object interface{}) {
j, err := json.MarshalIndent(object, "", "\t")
if err != nil {
http.Error(rw, "500: "+err.Error(), http.StatusInternalServerError)
return
}
rw.Write(j)
}
开发者ID:esantoro,项目名称:heyfyi,代码行数:8,代码来源:server.go
示例11: getServerConfiguration
func (this *RequestHandler) getServerConfiguration(response web.ResponseWriter, request *web.Request) error {
json, err := json.Marshal(this.ServerConfiguration)
if err != nil {
return err
}
response.Write(json)
return nil
}
开发者ID:sandstorm,项目名称:mailer-daemon,代码行数:8,代码来源:requestHandler.go
示例12: handleRequestWithPossibleErrors
func (this *RequestHandler) handleRequestWithPossibleErrors(response web.ResponseWriter, request *web.Request, handler func(web.ResponseWriter, *web.Request) error) {
response.Header().Add("Access-Control-Allow-Origin", "*")
err := handler(response, request)
if err != nil {
response.WriteHeader(http.StatusInternalServerError)
fmt.Fprint(response, err.Error())
}
}
开发者ID:sandstorm,项目名称:mailer-daemon,代码行数:8,代码来源:requestHandler.go
示例13: CorsMiddleware
//CorsMiddleware add the header Access-Control-Allow-Origin to the OPTIONS req.
func (c *Context) CorsMiddleware(rw web.ResponseWriter, r *web.Request,
next web.NextMiddlewareFunc) {
if r.Method != "OPTIONS" {
next(rw, r)
return
}
rw.Header().Set("Access-Control-Allow-Origin", "*")
}
开发者ID:eolexe,项目名称:raphael-assignment,代码行数:10,代码来源:server.go
示例14: SetResponseType
// SetResponseType is a middleware function that sets the appropriate response
// headers. Currently, it is setting the "Content-Type" to "application/json" as
// well as the necessary headers in order to enable CORS for Swagger usage.
func (s *ServerOpenchainREST) SetResponseType(rw web.ResponseWriter, req *web.Request, next web.NextMiddlewareFunc) {
rw.Header().Set("Content-Type", "application/json")
// Enable CORS
rw.Header().Set("Access-Control-Allow-Origin", "*")
rw.Header().Set("Access-Control-Allow-Headers", "accept, content-type")
next(rw, req)
}
开发者ID:tenc,项目名称:obc-peer-pre-public,代码行数:12,代码来源:rest_api.go
示例15: RetrieveStats
func (c *Context) RetrieveStats(rw web.ResponseWriter, req *web.Request) {
rw.Header().Set("Content-Type", "application/json")
stats := Stats.Data()
b, _ := json.Marshal(stats)
rw.Write(b)
}
开发者ID:krisrang,项目名称:fancypants,代码行数:9,代码来源:server.go
示例16: ValidateAwsCredentials
func (c *ApiContext) ValidateAwsCredentials(rw web.ResponseWriter, r *web.Request, next web.NextMiddlewareFunc) {
if ok := validatePresenceRequest(r, "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"); !ok {
rw.WriteHeader(http.StatusUnauthorized)
writeJson(rw, map[string]string{
"error": "missing credentials",
})
} else {
creds := credentials.NewStaticCredentials(r.FormValue("AWS_ACCESS_KEY_ID"), r.FormValue("AWS_SECRET_ACCESS_KEY"), "")
c.AwsCredentials = creds
next(rw, r)
}
}
开发者ID:grepory,项目名称:awsthingy,代码行数:12,代码来源:api.go
示例17: MMUInfo
func (c *WidgetContext) MMUInfo(rw web.ResponseWriter, req *web.Request) {
build := mmu.Build{Name: appName, Version: appVersion}
git := mmu.Git{Branch: buildCommitBranch, Commit: mmu.Commit{ID: buildCommit, Time: buildCommitTime}}
mgtEndpoints := mmu.ManagementEndpoints{Info: "/internal/info", Health: "/internal/health"}
serviceDependencies := []mmu.ServiceDependency{mmu.ServiceDependency{ServiceID: "auth", Version: "2"}}
info := mmu.Info{Build: build, Git: git, ManagementEndpoints: mgtEndpoints, ServiceDependencies: serviceDependencies, SDK: buildGoSDK}
if data, err := json.Marshal(&info); err != nil {
rw.WriteHeader(500)
return
} else {
rw.Write(data)
}
}
开发者ID:ae6rt,项目名称:goref,代码行数:13,代码来源:main.go
示例18: SaveTask
//SaveTask handles the endpoint POST /todo
func (c *Context) SaveTask(rw web.ResponseWriter, req *web.Request) {
var task db.Task
decoder := json.NewDecoder(req.Body)
if decoder != nil {
if err := decoder.Decode(&task); err == nil {
man.Create(&task)
rw.WriteHeader(http.StatusOK)
} else {
fmt.Fprint(rw, jsonError("trying decode, but "+err.Error()))
}
}
}
开发者ID:eolexe,项目名称:raphael-assignment,代码行数:14,代码来源:server.go
示例19: QueryVarsMiddleware
func (c *Context) QueryVarsMiddleware(rw web.ResponseWriter, r *web.Request, next web.NextMiddlewareFunc) {
values, err := parseQueryParams(rw, r)
if err != nil {
log.Println(err)
rw.WriteHeader(http.StatusBadRequest)
rw.Write([]byte("Malformed URL"))
return
}
c.values = &values
next(rw, r)
}
开发者ID:b00lduck,项目名称:raspberry-energy-monitor,代码行数:13,代码来源:server.go
示例20: ThermometerByCodeHandler
// Get specific thermometer by code
func (c *Context) ThermometerByCodeHandler(rw web.ResponseWriter, req *web.Request) {
code := parseStringPathParameter(req, "code")
var thermometer orm.Thermometer
db.Where(&orm.Thermometer{Code: code}).First(&thermometer)
if thermometer.ID == 0 {
rw.WriteHeader(http.StatusNotFound)
rw.Write([]byte("Thermometer not found"))
return
}
marshal(rw, thermometer)
}
开发者ID:b00lduck,项目名称:raspberry-energy-monitor,代码行数:15,代码来源:thermometer.go
注:本文中的github.com/gocraft/web.ResponseWriter类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论