Commit a0b5be1e authored by lihailei's avatar lihailei

Manually registered route.

parent 473996bd
...@@ -13,7 +13,7 @@ var ( ...@@ -13,7 +13,7 @@ var (
) )
func SetJrpcURL(url string) { func SetJrpcURL(url string) {
chain33_jrpcUrl=url chain33_jrpcUrl = url
} }
func GetJrpcURL() string { func GetJrpcURL() string {
return chain33_jrpcUrl return chain33_jrpcUrl
...@@ -43,40 +43,6 @@ func NewRpcCtx(laddr, methed string, params, res interface{}) *RpcCtx { ...@@ -43,40 +43,6 @@ func NewRpcCtx(laddr, methed string, params, res interface{}) *RpcCtx {
func (c *RpcCtx) SetResultCb(cb Callback) { func (c *RpcCtx) SetResultCb(cb Callback) {
c.cb = cb c.cb = cb
} }
//func (c *RpcCtx) Run() {
// rpc, err := jsonrpc.NewJSONClient(c.Addr)
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
//
// err = rpc.Call(c.Method, c.Params, c.Res)
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
//
// // maybe format rpc result
// var result interface{}
// if c.cb != nil {
// result, err = c.cb(c.Res)
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
// } else {
// result = c.Res
// }
//
// data, err := json.MarshalIndent(result, "", " ")
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
//
// fmt.Println(string(data))
//}
func (c *RpcCtx) ReplyData() ([]byte, error) { func (c *RpcCtx) ReplyData() ([]byte, error) {
rpc, err := jsonrpc.NewJSONClient(c.Addr) rpc, err := jsonrpc.NewJSONClient(c.Addr)
if err != nil { if err != nil {
......
...@@ -18,23 +18,18 @@ type BlockController struct { ...@@ -18,23 +18,18 @@ type BlockController struct {
// URLMapping ... // URLMapping ...
func (c *BlockController) URLMapping() { func (c *BlockController) URLMapping() {
//View last block header //View last block header
c.Mapping("getLastHeader", c.getLastHeader) c.Mapping("getLastHeader", c.GetLastHeader)
//Get hash of block at height //Get hash of block at height
c.Mapping("getBlockHashByHeight", c.getBlockHash) c.Mapping("getBlockHashByHeight", c.GetBlockHash)
//View block info by block hash //View block info by block hash
c.Mapping("getBlockViewByHash", c.getBlockViewByHash) c.Mapping("getBlockViewByHash", c.GetBlockViewByHash)
//Get block headers between [start, end] //Get block headers between [start, end]
c.Mapping("getBlockHeaders", c.getBlockHeaders) c.Mapping("getBlockHeaders", c.GetBlockHeaders)
// Get block headers between [start, end] // Get block headers between [start, end]
c.Mapping("getBlockList", c.getBlockList) c.Mapping("getBlockList", c.GetBlockList)
} }
//getLastHeader...
//@Title getLastHeader func (c *BlockController) GetLastHeader() {
//@Description getLastHeader
//@Success 200 {block}
//@Failure 403 :
//@router [get]
func (c *BlockController) getLastHeader() {
var res jsonrpc.Header var res jsonrpc.Header
ctx := NewRpcCtx(GetJrpcURL(), "Chain33.GetLastHeader", nil, &res) ctx := NewRpcCtx(GetJrpcURL(), "Chain33.GetLastHeader", nil, &res)
data, err := ctx.ReplyData() data, err := ctx.ReplyData()
...@@ -45,13 +40,8 @@ func (c *BlockController) getLastHeader() { ...@@ -45,13 +40,8 @@ func (c *BlockController) getLastHeader() {
c.Ctx.ResponseWriter.Write(data) c.Ctx.ResponseWriter.Write(data)
} }
} }
//getLastHeader...
//@Title getLastHeader func (c *BlockController) GetBlockHash() {
//@Description getLastHeader
//@Success 200 {block}
//@Failure 400,403:
//@router /getBlockHashByHeight [get]
func (c *BlockController) getBlockHash() {
var res jsonrpc.ReplyHash var res jsonrpc.ReplyHash
height := c.Ctx.Request.Header.Get("height") height := c.Ctx.Request.Header.Get("height")
h, err := strconv.ParseInt(height, 10, 64) h, err := strconv.ParseInt(height, 10, 64)
...@@ -71,13 +61,8 @@ func (c *BlockController) getBlockHash() { ...@@ -71,13 +61,8 @@ func (c *BlockController) getBlockHash() {
c.Ctx.ResponseWriter.Write(data) c.Ctx.ResponseWriter.Write(data)
} }
} }
//getblockViewByHash...
//@Title getblockViewByHash func (c *BlockController) GetBlockViewByHash() {
//@Description getblockViewByHash
//@Success 200 {blockView}
//@Failure 400,403 :
//@router /getblockViewByHash [get]
func (c *BlockController) getBlockViewByHash() {
blockHash := c.Ctx.Request.Header.Get("blockHash") blockHash := c.Ctx.Request.Header.Get("blockHash")
if blockHash == "" { if blockHash == "" {
c.Ctx.ResponseWriter.WriteHeader(400) c.Ctx.ResponseWriter.WriteHeader(400)
...@@ -96,13 +81,8 @@ func (c *BlockController) getBlockViewByHash() { ...@@ -96,13 +81,8 @@ func (c *BlockController) getBlockViewByHash() {
c.Ctx.ResponseWriter.Write(data) c.Ctx.ResponseWriter.Write(data)
} }
} }
//getblockHeaders...
//@Title getblockHeaders func (c *BlockController) GetBlockHeaders() {
//@Description getblockHeaders
//@Success 200 {blockHeader}
//@Failure 400,403 :
//@router /getBlockHeaders [get]
func (c *BlockController) getBlockHeaders() {
startH, errS := strconv.ParseInt(c.Ctx.Request.Header.Get("startH"), 10, 64) startH, errS := strconv.ParseInt(c.Ctx.Request.Header.Get("startH"), 10, 64)
endH, errE := strconv.ParseInt(c.Ctx.Request.Header.Get("endH"), 10, 64) endH, errE := strconv.ParseInt(c.Ctx.Request.Header.Get("endH"), 10, 64)
isDetail, errD := strconv.ParseBool(c.Ctx.Request.Header.Get("detail")) isDetail, errD := strconv.ParseBool(c.Ctx.Request.Header.Get("detail"))
...@@ -125,13 +105,8 @@ func (c *BlockController) getBlockHeaders() { ...@@ -125,13 +105,8 @@ func (c *BlockController) getBlockHeaders() {
c.Ctx.ResponseWriter.Write(data) c.Ctx.ResponseWriter.Write(data)
} }
} }
//getblockList...
//@Title getblockList func (c *BlockController) GetBlockList() {
//@Description getblockList
//@Success 200 {blockList}
//@Failure 400,403 :
//@router /getBlockList [get]
func (c *BlockController) getBlockList() {
startH, errS := strconv.ParseInt(c.Ctx.Request.Header.Get("startH"), 10, 64) startH, errS := strconv.ParseInt(c.Ctx.Request.Header.Get("startH"), 10, 64)
endH, errE := strconv.ParseInt(c.Ctx.Request.Header.Get("endH"), 10, 64) endH, errE := strconv.ParseInt(c.Ctx.Request.Header.Get("endH"), 10, 64)
......
...@@ -16,12 +16,6 @@ func (c *PeerController) URLMapping() { ...@@ -16,12 +16,6 @@ func (c *PeerController) URLMapping() {
c.Mapping("getPeers", c.GetPeers) c.Mapping("getPeers", c.GetPeers)
} }
//GetOne ...
//@Title GetPeers
//@Description get Peers
//@Success 200 {object} models.Peer
//@Failure 403 :
//@router /getPeers [get]
func (c *PeerController) GetPeers() { func (c *PeerController) GetPeers() {
var res jsonrpc.PeerList var res jsonrpc.PeerList
ctx := NewRpcCtx(GetJrpcURL(), "Chain33.GetPeerInfo", nil, &res) ctx := NewRpcCtx(GetJrpcURL(), "Chain33.GetPeerInfo", nil, &res)
......
...@@ -3,13 +3,13 @@ package controllers ...@@ -3,13 +3,13 @@ package controllers
import ( import (
"github.com/astaxie/beego" "github.com/astaxie/beego"
jsonrpc "gitlab.33.cn/chain33/chain33/rpc" jsonrpc "gitlab.33.cn/chain33/chain33/rpc"
"gitlab.33.cn/chain33/chain33/types"
. "gitlab.33.cn/lihailei/chain33_sdk/common" . "gitlab.33.cn/lihailei/chain33_sdk/common"
. "gitlab.33.cn/lihailei/chain33_sdk/models" . "gitlab.33.cn/lihailei/chain33_sdk/models"
"gitlab.33.cn/chain33/chain33/types"
"strconv"
"io/ioutil"
"encoding/json" "encoding/json"
"io/ioutil"
"strconv"
) )
// TxController operations for Tx // TxController operations for Tx
...@@ -22,25 +22,20 @@ func (c *TxController) URLMapping() { ...@@ -22,25 +22,20 @@ func (c *TxController) URLMapping() {
c.Mapping("queryTxByHash", c.QueryTxByHash) c.Mapping("queryTxByHash", c.QueryTxByHash)
c.Mapping("queryTxByAddr", c.QueryTxByAddr) c.Mapping("queryTxByAddr", c.QueryTxByAddr)
} }
//queryTxByHash...
//@Title queryTxByHash
//@Description queryTxByHash
//@Success 200 {TX}
//@Failure 400,403 :
//@router /queryTxByHash [get]
func (c *TxController) QueryTxByHash() { func (c *TxController) QueryTxByHash() {
hash := c.Ctx.Request.Header.Get("hash") hash := c.Ctx.Request.Header.Get("hash")
isRawHex, _ := strconv.ParseBool(c.Ctx.Request.Header.Get("isRawHex")) isRawHex, _ := strconv.ParseBool(c.Ctx.Request.Header.Get("isRawHex"))
if hash ==""{ if hash == "" {
c.Ctx.ResponseWriter.WriteHeader(400) c.Ctx.ResponseWriter.WriteHeader(400)
return return
} }
var data []byte var data []byte
var err error var err error
if isRawHex { if isRawHex {
data,err =queryByHashOutputHex(GetJrpcURL(), hash) data, err = queryByHashOutputHex(GetJrpcURL(), hash)
} else { } else {
data,err=queryByHash(GetJrpcURL(), hash) data, err = queryByHash(GetJrpcURL(), hash)
} }
if err != nil { if err != nil {
c.Data["json"] = err.Error() c.Data["json"] = err.Error()
...@@ -50,17 +45,11 @@ func (c *TxController) QueryTxByHash() { ...@@ -50,17 +45,11 @@ func (c *TxController) QueryTxByHash() {
} }
} }
//queryTxByAddr...
//@Title queryTxByAddr
//@Description queryTxByAddr
//@Success 200 {TX}
//@Failure 400,403 :
//@router /queryTxByAddr [get]
func (c *TxController) QueryTxByAddr() { func (c *TxController) QueryTxByAddr() {
var params types.ReqAddr var params types.ReqAddr
body,_:= ioutil.ReadAll(c.Ctx.Request.Body) body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
err :=json.Unmarshal(body,&params) err := json.Unmarshal(body, &params)
if err !=nil { if err != nil {
c.Ctx.ResponseWriter.WriteHeader(400) c.Ctx.ResponseWriter.WriteHeader(400)
return return
} }
...@@ -83,7 +72,7 @@ func (c *TxController) QueryTxByAddr() { ...@@ -83,7 +72,7 @@ func (c *TxController) QueryTxByAddr() {
} }
} }
func queryByHashOutputHex(rpcAddr, txHash string)([]byte,error) { func queryByHashOutputHex(rpcAddr, txHash string) ([]byte, error) {
params := jsonrpc.QueryParm{ params := jsonrpc.QueryParm{
Hash: txHash, Hash: txHash,
} }
...@@ -91,7 +80,7 @@ func queryByHashOutputHex(rpcAddr, txHash string)([]byte,error) { ...@@ -91,7 +80,7 @@ func queryByHashOutputHex(rpcAddr, txHash string)([]byte,error) {
ctx := NewRpcCtx(rpcAddr, "Chain33.GetHexTxByHash", params, &res) ctx := NewRpcCtx(rpcAddr, "Chain33.GetHexTxByHash", params, &res)
return ctx.ReplyData() return ctx.ReplyData()
} }
func queryByHash(rpcAddr, txHash string)([]byte,error) { func queryByHash(rpcAddr, txHash string) ([]byte, error) {
params := jsonrpc.QueryParm{ params := jsonrpc.QueryParm{
Hash: txHash, Hash: txHash,
} }
......
...@@ -12,7 +12,7 @@ func main() { ...@@ -12,7 +12,7 @@ func main() {
beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
} }
if beego.AppConfig.String("jrpcAddr")!=""{ if beego.AppConfig.String("jrpcAddr") != "" {
common.SetJrpcURL(beego.AppConfig.String("jrpcAddr")) common.SetJrpcURL(beego.AppConfig.String("jrpcAddr"))
} }
beego.Run() beego.Run()
......
package routers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/context/param"
)
func init() {
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockHash",
Router: `/getBlockHashByHeight`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockHeaders",
Router: `/getBlockHeaders`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockList",
Router: `/getBlockList`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockViewByHash",
Router: `/getblockViewByHash`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getLastHeader",
Router: `[get]`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:PeerController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:PeerController"],
beego.ControllerComments{
Method: "GetPeers",
Router: `/getPeers`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"],
beego.ControllerComments{
Method: "QueryTxByAddr",
Router: `/queryTxByAddr`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"],
beego.ControllerComments{
Method: "QueryTxByHash",
Router: `/queryTxByHash`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
}
...@@ -40,7 +40,13 @@ func init() { ...@@ -40,7 +40,13 @@ func init() {
ctx.Request.Header.Set("privateKey", "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944") ctx.Request.Header.Set("privateKey", "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944")
}) })
beego.AddNamespace(ns) beego.AddNamespace(ns)
//beego.Router("/v1/peer",&controllers.PeerController{},) //注册路由
//beego.Router("/v1/block",&controllers.BlockController{}) beego.Router("/v1/peer/getPeers", &controllers.PeerController{}, "get:GetPeers")
//beego.Router("/v1/tx",&controllers.TxController{}) beego.Router("/v1/block/getLastHeader", &controllers.BlockController{}, "get:GetLastHeader")
beego.Router("/v1/block/getBlockHashByHeight", &controllers.BlockController{}, "get:GetBlockHash")
beego.Router("/v1/block/getBlockViewByHash", &controllers.BlockController{}, "get:GetBlockViewByHash")
beego.Router("/v1/block/getBlockHeaders", &controllers.BlockController{}, "get:GetBlockHeaders")
beego.Router("/v1/block/getBlockList", &controllers.BlockController{}, "get:GetBlockList")
beego.Router("/v1/tx/queryTxByHash", &controllers.TxController{}, "get:QueryTxByHash")
beego.Router("/v1/tx/queryTxByAddr", &controllers.TxController{}, "get:QueryTxByAddr")
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment