本文整理汇总了Golang中github.com/julienschmidt/httprouter.Router.MethodNotAllowed方法的典型用法代码示例。如果您正苦于以下问题:Golang Router.MethodNotAllowed方法的具体用法?Golang Router.MethodNotAllowed怎么用?Golang Router.MethodNotAllowed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/julienschmidt/httprouter.Router
的用法示例。
在下文中一共展示了Router.MethodNotAllowed方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: SetupHTTP
// setupHTTP attaches all the needed handlers to provide the HTTP API.
func (m *Manta) SetupHTTP(mux *httprouter.Router) {
baseRoute := "/" + m.ServiceInstance.UserAccount
mux.NotFound = ErrNotFound
mux.MethodNotAllowed = ErrNotAllowed
mux.RedirectFixedPath = true
mux.RedirectTrailingSlash = true
mux.HandleMethodNotAllowed = true
// this particular route can't be handled by httprouter correctly due to its
// handling of positional parameters but we can't just pass in ErrNotAllowed
// either because it's the wrong type
handleNotAllowed := func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
w.WriteHeader(http.StatusMethodNotAllowed)
w.Header().Set("Content-Type", "text/plain; charset=UTF-8")
w.Write([]byte("Method is not allowed"))
}
mux.POST(baseRoute+"/stor", handleNotAllowed)
// storage APIs
// PutSnapLink and PutMetaData have the same route spec as other routes
// in this group, which isn't permitted by httprouter. We pick up the
// correct path in the handler
mux.PUT(baseRoute+"/stor/:dir", m.handler((*Manta).handleStorage)) // PutDirectory
mux.GET(baseRoute+"/stor/:dir", m.handler((*Manta).handleStorage)) // ListDirectory
mux.DELETE(baseRoute+"/stor/:dir", m.handler((*Manta).handleStorage)) // DeleteDirectory
mux.PUT(baseRoute+"/stor/:dir/:obj", m.handler((*Manta).handleStorage)) // PutObject
mux.GET(baseRoute+"/stor/:dir/:obj", m.handler((*Manta).handleStorage)) // GetObject
mux.DELETE(baseRoute+"/stor/:dir/:obj", m.handler((*Manta).handleStorage)) // DeleteObject
// job APIs
mux.POST(baseRoute+"/jobs", m.handler((*Manta).handleJobs)) // CreateJob
mux.POST(baseRoute+"/jobs/:id/live/in", m.handler((*Manta).handleJobs)) // AddJobInputs
mux.POST(baseRoute+"/jobs/:id/live/in/end", m.handler((*Manta).handleJobs)) // EndJobInput
mux.POST(baseRoute+"/jobs/:id/live/cancel", m.handler((*Manta).handleJobs)) // CancelJob
mux.GET(baseRoute+"/jobs", m.handler((*Manta).handleJobs)) // ListJobs
mux.GET(baseRoute+"/jobs/:id/live/status", m.handler((*Manta).handleJobs)) // GetJob
mux.GET(baseRoute+"/jobs/:id/live/out", m.handler((*Manta).handleJobs)) // GetJobOutput
mux.GET(baseRoute+"/jobs/:id/live/in", m.handler((*Manta).handleJobs)) // GetJobInput
mux.GET(baseRoute+"/jobs/:id/live/fail", m.handler((*Manta).handleJobs)) // GetJobFailures
mux.GET(baseRoute+"/jobs/:id/live/err", m.handler((*Manta).handleJobs)) // GetJobErrors
}
示例2: SetupHTTP
// SetupHTTP attaches all the needed handlers to provide the HTTP API.
func (c *CloudAPI) SetupHTTP(mux *httprouter.Router) {
baseRoute := "/" + c.ServiceInstance.UserAccount
mux.NotFound = NotFound{}
mux.MethodNotAllowed = MethodNotAllowed{}
// keys
keysRoute := baseRoute + "/keys"
mux.GET(keysRoute, c.handler((*CloudAPI).handleListKeys))
mux.POST(keysRoute, c.handler((*CloudAPI).handleCreateKey))
// key
keyRoute := keysRoute + "/:id"
mux.GET(keyRoute, c.handler((*CloudAPI).handleGetKey))
mux.DELETE(keyRoute, c.handler((*CloudAPI).handleDeleteKey))
// images
imagesRoute := baseRoute + "/images"
mux.GET(imagesRoute, c.handler((*CloudAPI).handleListImages))
// image
imageRoute := imagesRoute + "/:id"
mux.GET(imageRoute, c.handler((*CloudAPI).handleGetImage))
mux.POST(imageRoute, c.handler((*CloudAPI).handleCreateImageFromMachine))
mux.DELETE(imageRoute, c.handler((*CloudAPI).handleDeleteImage))
// packages
packagesRoute := baseRoute + "/packages"
mux.GET(packagesRoute, c.handler((*CloudAPI).handleListPackages))
// package
packageRoute := packagesRoute + "/:id"
mux.GET(packageRoute, c.handler((*CloudAPI).handleGetPackage))
// machines
machinesRoute := baseRoute + "/machines"
mux.GET(machinesRoute, c.handler((*CloudAPI).handleListMachines))
mux.HEAD(machinesRoute, c.handler((*CloudAPI).handleCountMachines))
mux.POST(machinesRoute, c.handler((*CloudAPI).handleCreateMachine))
// machine
machineRoute := machinesRoute + "/:id"
mux.GET(machineRoute, c.handler((*CloudAPI).handleGetMachine))
mux.POST(machineRoute, c.handler((*CloudAPI).handleUpdateMachine))
mux.DELETE(machineRoute, c.handler((*CloudAPI).handleDeleteMachine))
// machine metadata
machineMetadataRoute := machineRoute + "/metadata"
mux.GET(machineMetadataRoute, c.handler((*CloudAPI).handleGetMachineMetadata))
mux.POST(machineMetadataRoute, c.handler((*CloudAPI).handleUpdateMachineMetadata))
mux.DELETE(machineMetadataRoute, c.handler((*CloudAPI).handleDeleteAllMachineMetadata))
// machine metadata (individual key)
machineMetadataKeyRoute := machineMetadataRoute + "/:key"
mux.DELETE(machineMetadataKeyRoute, c.handler((*CloudAPI).handleDeleteMachineMetadata))
// machine tags
machineTagsRoute := machineRoute + "/tags"
mux.GET(machineTagsRoute, c.handler((*CloudAPI).handleListMachineTags))
mux.POST(machineTagsRoute, c.handler((*CloudAPI).handleAddMachineTags))
mux.PUT(machineTagsRoute, c.handler((*CloudAPI).handleReplaceMachineTags))
mux.DELETE(machineTagsRoute, c.handler((*CloudAPI).handleDeleteMachineTags))
// machine tag
machineTagRoute := machineTagsRoute + "/:tag"
mux.GET(machineTagRoute, c.handler((*CloudAPI).handleGetMachineTag))
mux.DELETE(machineTagRoute, c.handler((*CloudAPI).handleDeleteMachineTag))
// machine firewall rules
machineFWRulesRoute := machineRoute + "/fwrules"
mux.GET(machineFWRulesRoute, c.handler((*CloudAPI).handleMachineFirewallRules))
// machine NICs
machineNICsRoute := machineRoute + "/nics"
mux.GET(machineNICsRoute, c.handler((*CloudAPI).handleListNICs))
mux.POST(machineNICsRoute, c.handler((*CloudAPI).handleAddNIC))
// machine NIC
machineNICRoute := machineNICsRoute + "/:mac"
mux.GET(machineNICRoute, c.handler((*CloudAPI).handleGetNIC))
mux.DELETE(machineNICRoute, c.handler((*CloudAPI).handleRemoveNIC))
// firewall rules
firewallRulesRoute := baseRoute + "/fwrules"
mux.GET(firewallRulesRoute, c.handler((*CloudAPI).handleListFirewallRules))
mux.POST(firewallRulesRoute, c.handler((*CloudAPI).handleCreateFirewallRule))
// firewall rule
firewallRuleRoute := firewallRulesRoute + "/:id"
mux.GET(firewallRuleRoute, c.handler((*CloudAPI).handleGetFirewallRule))
mux.POST(firewallRuleRoute, c.handler((*CloudAPI).handleUpdateFirewallRule))
mux.DELETE(firewallRuleRoute, c.handler((*CloudAPI).handleDeleteFirewallRule))
mux.POST(firewallRuleRoute+"/enable", c.handler((*CloudAPI).handleEnableFirewallRule))
mux.POST(firewallRuleRoute+"/disable", c.handler((*CloudAPI).handleDisableFirewallRule))
// networks
networksRoute := baseRoute + "/networks"
mux.GET(networksRoute, c.handler((*CloudAPI).handleListNetworks))
//.........这里部分代码省略.........